can.Model使用多个参数进行销毁

时间:2014-09-20 02:35:31

标签: canjs canjs-model

我正在使用我无法控制的API。我想做这样的事情:

var Page = can.Model.extend({
  destroy: 'DELETE /api/{account_id}/{page_id}'
})

这不起作用 - canjs根本不使用销毁URL。我尝试创建一个函数,但唯一传递的参数是' id'。我确定你会说这不是真正的REST,但我坚持使用API​​。每当我在网址中放入多个参数时,网址都不会被使用。

有什么想法吗?

2 个答案:

答案 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);
  }
})

这看起来有点奇怪,但我会克服它!