Backbone.js Collection过滤前10个模型

时间:2012-08-09 19:46:13

标签: javascript backbone.js backbone.js-collections

我的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()不允许链。请参阅我选择的答案以获得解决方案。

1 个答案:

答案 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进行此操作。

查看Backbone docUnderscore doc