我有一个骨干集合
var Stuff = Backbone.Collection.extend({
url: "stuff/"
model: StuffModel
});
我还有一系列ID:
var ids = [1,2,3,4];
根据文档,我在Stuff上调用fetch就像这样:
this.collection.fetch({$ .param({ids:exercise_ids.join(“,”)})});
这向表单的服务器发送请求:
/东西/?IDS = 1,2,3,4
这有效,但我对请求的形式不满意。有没有办法可以使用以下格式发送请求(即不使用查询字符串)
/东西/ 1,2,3,4-
先谢谢你的帮助。
答案 0 :(得分:0)
假设后端在执行/ stuff / [param]时将[param]视为id,则功能上没有区别。这些请求是在幕后制作的,不会影响浏览器的地址栏,因此这里没有任何问题。如果要格式化网址,可以将网址定义为Backbone Collection中的函数
var Stuff = Backbone.Collection.extend({
initialize: function(models, options) {
this.ids = options.ids
//bind functions to 'this' so that you can access ids
_.bind(this, 'setIds', 'url');
},
setIds: function(ids) {
this.ids = ids;
//return 'this' to allow chaining
return this;
},
url: function() {
return 'stuff/' + this.ids.join(',')
}
});
myCollection.setIds([1,2,3,4]).fetch()