CanJs模型服务方法实现

时间:2013-10-25 13:46:48

标签: javascript model-view-controller canjs canjs-model

我无法理解如何正确实现can.Model服务方法。我目前有这个

var Foo = can.Model({
findAll: "GET /service/Editor.svc/foo",
findOne: "GET /service/Editor.svc/foo/{id}",
create: 'POST /service/Editor.svc/foo"',
update: 'PUT /service/Editor.svc/foo"{id}',
destroy: 'DELETE /service/Editor.svc/foo"{id}'
},{});

我查看了http://canjs.com/guides/Models.htmlhttp://canjs.com/guides/Tutorial.html以及CanJS Model findAll returns list of duplicate items

我想我不明白的是该模型的工作原理。以上声明是我唯一需要这些方法的方法吗?当我试图运行时

var test = new Foo() 然后foo.findAll({}, function(success){//dosomething}, function(xhr){//do something else}) 我得到TypeError: Object #<Constructor> has no method 'findAll'

我错过了这个框架的哪个部分?

对于记录,这与c#wcf服务交互并从mongodb中提取json对象

1 个答案:

答案 0 :(得分:1)

您定义的findAll等方法是构造函数方法而不是原型方法。这意味着你必须在Foo对象而不是foo实例上调用它(我通常将我的模型及其实例命名为不同,以免混淆它们 - 例如var bar = new Foo())。

Foo.findAll({}, function(data) {

});

// Or a little nicer:
Foo.findAll({}).then(function(data) {

});