私はかつてfetchMany
バックボーン コレクション用にこの mixin を作成しました。これは、あなたが求めているものとほとんど同じであり、さらに jQuery promise API に関するいくつかの砂糖です。多分それはあなたにとっても役に立つでしょうか?
ミックスイン:
Backbone.Collection.prototype.fetchMany = function(ids, options) {
var collection = this;
var promises = _.map(ids, function(id) {
var instance = collection.get(id);
if(!instance) {
instance = new collection.model({id:id});
collection.add(instance);
}
return instance.fetch(options);
});
//promise that all fetches will complete, give the collection as parameter
return $.when.apply(this, promises).pipe(function() { return collection; });
};
次のように使用できます。
var collection = new SomeCollection();
collection.fetchMany([4,16,43,34]).then(function(c) {
//do something with the collection...
$("body").append(new SomeView({collection:c}).render().el);
});