Backbone Collection Fetch和Request的形式

时间:2013-02-22 17:22:56

标签: javascript jquery backbone.js backbone-collections

我有一个骨干集合

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-

先谢谢你的帮助。

1 个答案:

答案 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()