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