var _this = this,
fragment = document.createDocumentFragment();
this.limitedCollection.each(function(model) {
fragment.appendChild(_this.renderModel(model)[0]);
});
我想将上面的内容更改为循环,直到maximumDisplayedItems而不是集合中的所有项目。
类似的东西:
var _this = this,
fragment = document.createDocumentFragment();
for (var i = 0; i < this.maximumDisplayedItems; i++) {
// do stuff
};
答案 0 :(得分:1)
这样的事情可以解决问题:
for (var i = 0; i < this.limitedCollection.length && i < this.maximumDisplayedItems; i++) {
fragment.appendChild(_this.renderModel(limitedCollection[i])[0]);
};
答案 1 :(得分:0)
如果您的limitedCollection
为Backbone.Collection
,您可以访问以下型号:
fragment = document.createDocumentFragment();
var models = this.limitedCollection.models; // array of Backbone.Model objects,
var modelsLength = models.length;
for (var i = 0; i < modelsLength && i < this.maximumDisplayedItems; i++) {
fragment.appendChild(_this.renderModel(models[i])[0]);
};
答案 2 :(得分:-2)
只需使用该集合的first
方法:
this.limitedCollection.first(maximumDisplayedItems).forEach(function(model) {
fragment.appendChild(_this.renderModel(model)[0]);
});
分页或slice
:
var page = 1,
maximumDisplayedItems = 10,
start = (page - 1) * maximumDisplayedItems;
this.limitedCollection.slice(start, start + maximumDisplayedItems).forEach(function(model) {
fragment.appendChild(_this.renderModel(model)[0]);
});