Backbone.Collectionで 'fetch'を呼び出すと、Backbone.syncが呼び出されます。これはデフォルトでコレクションに使用するURLを要求します。だから、
サーバーが応答する場合:
/models/batch/?ids=1,2,3,4
あなたが何か行うことができます:
var MyCollection = Backbone.Collection.extend({
model: Model,
url: '/models',
initialize: function(models, options) {
ids = options.ids || [];
if (ids.length > 0) {
this.fetchByIds(ids);
}
},
fetchByIds: function(ids) {
// Save a reference to the existing url
var baseUrl = this.url;
// Assign our batch url to the 'url' property and call the server
this.url += '/?ids=' + ids.join(',');
this.fetch();
// Restore the 'url' property
this.url = baseUrl;
}
});
をそしてそうようにそれを使用します。
var coll = new MyCollection({}, {ids: [1, 2, 3, 4]});
あなたは合格する必要があるだろうBackbone.Collectionコンストラクタ関数は、前に最初のパラメータで渡されたモデルを設定するため、optionsパラメータのidそれは '初期化'機能を呼び出します。
理論的には、これはうまくいくはずです(完全に試してはいません)。
ありがとう – Joe