示例代码:
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
但我仍然无法运行以下内容: PublicationBooks.each(...),或 publishedBooks.get(...)
我错过了什么?有没有办法将返回的数组转换为集合?
最佳答案
您可以实例化一个新的 Backbone 集合并传入数组。
var myPublishedBooks = new MyBooksCollection(publishedBooks);
或者您可以刷新您的原始收藏。
this.books.refresh(publishedBooks)
<小时/>
请注意 0.5.0 release in July 2011将 refresh
重命名为 reset
,因此您可以在较新版本的 Backbone 中实现此目的:
this.books.reset(publishedBooks)
关于javascript - 过滤 Backbone 集合返回模型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414976/