我正在使用我无法控制的API。我想做这样的事情:
var Page = can.Model.extend({
destroy: 'DELETE /api/{account_id}/{page_id}'
})
这不起作用 - canjs根本不使用销毁URL。我尝试创建一个函数,但唯一传递的参数是' id'。我确定你会说这不是真正的REST,但我坚持使用API。每当我在网址中放入多个参数时,网址都不会被使用。
有什么想法吗?
答案 0 :(得分:1)
您实际上是将 prototype destroy属性设置为字符串,因为如果未传递第二个对象,则传递给extend()的第一个对象将被解释为原型属性。你实际上需要这样做:
var Page = can.Model.extend({
destroy: 'DELETE /api/{account_id}/{page_id}'
}, {})
(注意:当您扩展can.Model时,CanJS会在内部将destroy
和其他一些属性从AJAX规范转换为函数,但静态属性中仅
答案 1 :(得分:0)
看来这没关系(花了一段时间才发现第二个参数是实例......没有看到记录在任何地方):
var Page = can.Model.extend({
destroy: function(id, page) {
return $.get('/api/'+page.account_id+'/'+page.id);
}
})
这看起来有点奇怪,但我会克服它!