我有一个骨干集合,其中集合由一个带有id参数的URL(不是RESTful)获取
url: '/api/categories/?level=2&id=',
Run Code Online (Sandbox Code Playgroud)
所以id可能是
&id=2
Run Code Online (Sandbox Code Playgroud)
要么
&id=45
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?我一直在阅读不同的帖子,有些人说要覆盖Backbone Sync,其他人说只是做一个提取但修改数据参数......
构造时Collection,传递idas参数(默认情况下,Collectiondo do时没有id属性Model).
然后,覆盖它的url属性Collection并传递一个函数:
MyCollection = Backbone.Collection.extend({
initialize : function(models, options) {
this.id = options.id;
},
model : // Your Model class
url: function() {
return '/api/categories/?id=' + this.id;
}
});
// [] is the initial, empty set of models
var coll = new MyCollection([], { id: 45 });
coll.fetch(); // the correct url will be called
Run Code Online (Sandbox Code Playgroud)