can.Model.makeFindOne
can.Model.makeFindOne: function(findOneData) -> findOne
Returns the external findOne
method given the implemented findOneData function.
Parameters
-
{findOneData(params)}
findOne is implemented with a
String
, [can.AjaxSettings ajax settings object], or findOneData function. If it is implemented as aString
or [can.AjaxSettings ajax settings object], those values are used to create a findOneData function.The findOneData function is passed to
makeFindOne
.makeFindOne
should usefindOneData
internally to get the raw data for the request.
Returns
{function(params, success, error)}
Returns function that implements the external API of findOne
.
Use
makeFindOne
can be used to implement base models that perform special behavior.makeFindOne
is passed a findOneData function that retrieves raw data. It should return a function that when called, uses the findOneData function to get the raw data, convert them to model instances with models.Caching
The following uses
makeFindOne
to create a baseCachedModel
:CachedModel = can.Model.extend({ makeFindOne: function(findOneData){ // A place to store requests var cachedRequests = {};
},{})
The following Todo model will never request the same todo twice:
Todo = CachedModel({ findOne: "/todos/{id}" },{})
// widget 1 Todo.findOne({id: 5})
// widget 2 Todo.findOne({id: 5})