Backbone.js BackboneJS如何使用单击事件在集合中加载更多模型

Backbone.js BackboneJS如何使用单击事件在集合中加载更多模型,backbone.js,Backbone.js,如何使用Backbone的单击事件方法将更多模型加载到集合中 我有以下收藏: MyCollection = Backbone.Collection.extend({ parse: function(response){ return response.data.posts.slice(0,10); }, }); 这给了我10个模型。到目前为止还不错,现在我想在每次单击按钮时将另外10个模型加载到集合中。我怎样才能做到这一点 在我的观点中,我添加了以下内容: ev

如何使用Backbone的单击事件方法将更多模型加载到集合中

我有以下收藏:

MyCollection = Backbone.Collection.extend({
    parse: function(response){
        return response.data.posts.slice(0,10);
    },
});
这给了我10个模型。到目前为止还不错,现在我想在每次单击按钮时将另外10个模型加载到集合中。我怎样才能做到这一点

在我的观点中,我添加了以下内容:

events: {
    'click .more': 'showMore'
},
showMore: function(){
   // show more functionality  
},

下一步怎么办?请帮助…

聊天后讨论的目标是在点击按钮时从API JSON获得前10篇文章。由于响应是动态的,我们无法对集合进行一次分析,然后在每次单击时对其进行切片,因此解决方案之一是使用集合实例上的标志来控制集合数组切片:

MyCollection = Backbone.Collection.extend({
    step: 0,
    parse: function(response){
        var slice = response.data.posts.slice(this.step*10,(this.step+1)*10)
        this.step++;
        return slice;
    }
});

this.collection.fetch({remove:false})是的,这在某种程度上是可行的,但它在整个Againdos上加载了相同的10个模型。后端为您提供了一组新的模型?是的,后端(或API)提供了许多模型,只是为了显示的目的,我想先显示10个,然后用户可以选择查看更多或不查看,因此,背面为您提供了例如100个模型,在开始时,您希望渲染0-10、第二个10-20、第三个20-30等等?这是一种不好的做法,您不应该每次都获取模型,然后对其进行切片,您应该一次完成所有操作,然后返回一个经过过滤的集合进行渲染,或者请求一次只能获取10个time@DominicTobias,绝对同意,这是我问的第一个问题-我们可以解析集合的片段,然后渲染它的片段吗。但作者回答说,响应是动态的,每次单击都需要运行fetch