我无法理解如何正确实现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.html和http://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对象
答案 0 :(得分:1)
您定义的findAll
等方法是构造函数方法而不是原型方法。这意味着你必须在Foo
对象而不是foo
实例上调用它(我通常将我的模型及其实例命名为不同,以免混淆它们 - 例如var bar = new Foo()
)。
Foo.findAll({}, function(data) {
});
// Or a little nicer:
Foo.findAll({}).then(function(data) {
});