我有一个简单的List-style Backbone应用程序,我正在使用Rails后端。
我有一个集合:
var ItemList = Backbone.Collection.extend({
model: Item,
initialize: function(id) {
this.id = id;
},
url: function(){
return '/lists/' + this.id + '/items';
},
});
所有标准CRUD操作都可以在模型中正常运行。但我有一条“额外”路线 - “清除”,将清除一个节目中列表中的所有项目。路线是:
/lists/[:id]/clear
因为这不在正常的CRUD操作之外,是否可以将其挂钩到正常的Collection中,或者我是否单独执行某些操作?
答案 0 :(得分:2)
您可以添加自己的执行/lists/:id/clear
的方法,然后在完成后对集合执行reset
:
clear: function() {
var _this = this;
$.ajax({
url: '/lists/' + this.id + '/clear',
//...
success: function() {
_this.reset();
}
});
}
当您在没有任何参数的情况下调用reset
时,它会从集合中删除所有模型。
答案 1 :(得分:2)
你可以在你的集合上创建一个名为destroy
的方法,在那里你可以采用几种方法之一来制作AJAX请求(按照与Backbone协调的顺序)。请注意,您可能不想调用收集方法clear
,因为Backbone Models已经有一个具有不同语义的clear
方法。
Backbone.Model
实例,然后调用' destroy'在它上面$.ajax
调用。