0

バックボーンコレクションがあります

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( "、")})});

これにより、次の形式のサーバーにリクエストが送信されます。

/ stuff /?ids = 1,2,3,4

これは機能しますが、リクエストの形式に満足していません。次のフォームでリクエストを送信する方法はありますか(つまり、クエリ文字列を使用しないでください)

/ stuff / 1,2,3,4

(事前に)あなたの助けに感謝します。

4

1 に答える 1

0

/ stuff / [param]を実行するときにバックエンドが[param]をIDとして認識すると仮定すると、機能に違いはありません。これらのリクエストはバックグラウンドで行われ、ブラウザのアドレスバーには影響しないため、ここでは特に問題はありません。URLをフォーマットする場合は、バックボーンコレクションの関数としてURLを定義できます。

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()
于 2013-02-23T00:51:42.677 に答える