javascript - 过滤 Backbone 集合返回模型数组

标签 javascript collections backbone.js underscore.js

示例代码:

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 2011refresh 重命名为 reset,因此您可以在较新版本的 Backbone 中实现此目的:

this.books.reset(publishedBooks)

关于javascript - 过滤 Backbone 集合返回模型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414976/

相关文章:

javascript - SAPUI5模型加载

javascript - 逗号分隔的属性与带下划线或 Lo-Dash 的实际属性

javascript - 展开/折叠表格行 Javascript 工作错误

c# - 从 IOrderedEnumerable 中删除一个对象

swift - 序列下降(而 :) Seemingly Does Nothing

javascript - 没有使用 java 脚本更改 HTML 输入字段的属性

objective-c - 有没有办法强制在 NSArray、NSMutableArray 等上输入?

backbone.js - 使用backbone.js 在 View 中收听body click

javascript - 在backbone.js中添加两个事件

javascript - 使用 Backbone.paginator 进行多个排序查询参数