筛选骨干集合将返回一个模型数组
Filtering a Backbone Collection returns an array of Models
示例代码:
this.books = this.getBooksFromDatabase();
this.publishedBooks = this.books.filter(function(book) {
return book.get("isPublished") === "1";
});
问题在于:
this.books.filter,返回一个模型数组。我已经尝试过包装数组,例如:
var publishedBooks = _( this.books.filter(function(book) {
return book.get("isPublished") === "1";
}))
如本帖所推荐:https://github.com/documentcloud/backbone/issues/120
但我仍然无法运行以下内容:publishedBooks.each(…),或publishedBooks.get(…)
我错过了什么?有没有办法将返回的数组转换为集合?
您可以实例化一个新的主干集合并传入数组。
var myPublishedBooks = new MyBooksCollection(publishedBooks);
或者你可以刷新你的原始收藏。
this.books.refresh(publishedBooks)
请注意2011年7月的0.5.0版本将refresh
重命名为reset
,因此您可以在较新版本的Backbone中使用;
this.books.reset(publishedBooks)
var collection = new Backbone.collection(yourArray)
我经常做这样的事情:
var collection = new MySpecialCollection([...]);
//And later...
var subset = new collection.constructor(collection.filter(...));
这将创建一个与原始集合类型相同的实例,其中包含已筛选的模型,因此您可以继续使用集合方法(each、filter、find、pull等)。
相关文章:
- 当一个模型在骨干关系中被销毁时,销毁相关模型的最佳方法是什么?
- LoopBack访问另一个模型
- 与设计用户相关联的多个模型-根据角色选择填写一个模型
- Backbone.js视图可以有一个模型和一个集合吗
- Backbone Collection.每个方法都会影响每隔一个模型
- 如何使用angularjs在一个模型中实现多个模板
- 在 Backbone 中将数据从一个模型传递到另一个模型
- 默认情况下,一个模型属性等于 sail.js 模型中的另一个模型属性
- Ember.js:一个模型如何观察其他模型
- 主干:如何在视图中将一个模型替换为另一个模型
- 访问 Ember.js 中的另一个模型数据
- BackboneJS:集合初始化在视图模块中只有一个模型
- 将主干模型属性值设置为另一个模型
- AngularJS请求模型在另一个模型创建[NodeJS]之前
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 如果一个模型在续集中引用自身,如何让所有孩子或父母在多对多关联中
- 创建一个模型REST API
- 在另一个模型中引用/填充猫鼬模型时出现问题
- 我应该如何创建一个作用域到另一个模型的主干集合
- 当模型依赖于另一个模型时创建模型