1

我的 Collection 获取了几条记录,我只需要显示其中的前 10 条记录。我尝试过

   this.collection.each(function(){
        if (count == 10) break;
        //pass model to view
   });

不幸的是, break不适用于 underscore.js 的 each() API 请参阅此处:如何在 underscore.js 中破坏 _.each 函数

如何编写过滤器以仅从集合中提取前 10 名

     this.collection.filter();

更新:collection.first(10) 为我获取过滤列表。但是,我仍然需要将 .each() 链接到此集合以处理集合项。collection.first() 不允许链。请参阅我选择的答案以获取解决方案。

4

1 回答 1

7

例如

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。请注意,还有另一种方法可以使用本主题中所述的下划线链方法

查看Backbone docUnderscore doc

于 2012-08-09T19:52:57.887 回答