Backbone.js集合大小-Don';如果达到限制,则不显示
我的主干集合中有以下代码Backbone.js集合大小-Don';如果达到限制,则不显示,backbone.js,backbone.js-collections,Backbone.js,Backbone.js Collections,我的主干集合中有以下代码 loadMore: function() { this.offset += 1; this.fetch({ data: { limit: 50, skip: this.offset }, remove: false, success: function(collection
loadMore: function() {
this.offset += 1;
this.fetch({
data: {
limit: 50,
skip: this.offset
},
remove: false,
success: function(collection) {
var collectionSize = collection.length;
console.log(collectionSize);
if (collectionSize < this.sizeLimit) {
this.add(collection);
} else {
eventer.trigger('products:end');
}
}.bind(this)
});
}
loadMore:function(){
该偏移量+=1;
这个,取回({
数据:{
限额:50,
跳过:这是偏移量
},
删除:false,
成功:功能(集合){
var collectionSize=collection.length;
console.log(collectionSize);
if(collectionSize
this.sizeLimit
硬编码为150(用于测试),但产品仍会继续添加到集合中,即使collectionSize
的增长将超过限制。这是因为fetch
会在集合运行成功回调之前自动将结果添加到集合中
看
它保存对您发送的成功回调的引用,但随后运行自己的成功回调,该回调执行收集。在调用您传入的结果之前,使用服务器结果设置
(或重置
)
您可以通过清空集合来启动成功回调,然后添加任意数量的模型,但这会生成许多不必要的事件。取决于您希望有此限制的原因,您最好自己执行AJAX请求,而不使用主干同步,或者在其他地方实现此限制,例如在渲染时。如ivarni所说,主干将在解析后自动将所有模型添加到集合中。但是,如果覆盖解析方法,则可以在以下步骤中丢弃不必要的项:
parse: function(data){
return data.slice(0, this.sizeLimit);
}
parse: function(data){
return data.slice(0, this.sizeLimit);
}