0

IDの配列を持っている

['tom','tim','joe','matt','scott']

各モデルには、IDを持つ属性があります。

5つのモデルすべてを取得して、新しいコレクションに入れるにはどうすればよいですか?

4

1 に答える 1

0

対応するコレクションでアンダースコアフィルターメソッドを使用するのはどうですか?

var ids = ['tom','tim','joe','matt','scott'];

var matches = collection.filter(function (model) { 
   return ids.indexOf(model.id) > -1; 
});

fetch永続層からモデルを作成する必要がある場合は、id属性セットを使用してモデルのコレクションを生成し、他の属性を設定するための適切なエンドポイントを提供することを検討してください。

var MyCollection = Backbone.Collection.extend({
  model: MyModel, // whatever your model is
  url: '/byname'  // whatever the endpoint is
});

var models = [];

_.each(ids, function (id) {
  models.push({ id: id });
});

var collection = new MyCollection;
collection.fetch({ models: models }); // fetch the associated models

(上記の例で)提供するエンドポイントが何であれ/byname、パラメーターでIDが指定された各モデルを含むコレクションを生成するように準備する必要がありmodelsます。

于 2012-12-03T22:15:04.353 に答える