我的Collection收集了一些记录,我只需要显示前十条记录。我试过
this.collection.each(function(){
if (count == 10) break;
//pass model to view
});
遗憾的是,中断不适用于underscore.js的each()API 请参阅此处:how to break the _.each function in underscore.js
如何编写过滤器以仅从集合中选择前10名
this.collection.filter();
更新:collection.first(10)获取了我过滤后的列表。但是,我仍然需要将.each()链接到此集合来处理集合项。 collection.first()不允许链。请参阅我选择的答案以获得解决方案。
答案 0 :(得分:7)
E.g。
this.collection.first(10)
然后,如果您需要使用每个模型,例如:
var collection = new Backbone.Collection([{id:1}, {id:2}, {id:3}, {id:4}, {id:5}],{model: Backbone.Model});
var newCollection = new Backbone.Collection(collection.first(2));
newCollection.each(function(model){
alert(JSON.stringify(model.toJSON()));
});
请参阅jsfiddle。 请注意,还有另一种方法可以使用此Underscore chain method中所述的topic进行此操作。