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 回答