我有一个Backbone Collection,它返回给定数量的模型,现在我有一个"加载更多"按钮应该加载更多的模型。加载的Collection基于参数。我的问题是,当加载Collection时,在Views initialize
函数中,我能够获得Collection所基于的参数。但是,在我的" loadMore"中需要此参数。功能。所以,我的问题是,如何将initialize
函数中的参数传递给另一个函数?
这是我到目前为止所得到的:
MyStuff.Collection = Backbone.Collection.extend({
url: 'someUrl',
initialize: function(opts) {
opts = opts || {};
this.value= opts.value;
},
step: 0,
parse: function(response){
var slice = response.results.slice(this.step*8,(this.step+1)*8);
this.step++;
return slice;
}
});
MyStuff.View= Backbone.View.extend({
template: 'myTemplate',
initialize: function() {
this.currentPage = 0;
this.listenTo(this.collection, 'sync', this.hideLoader);
this.listenTo(this.collection, 'reset', this.afterRender);
this.collection.reset(this.collection.shuffle(), {silent:true});
var suit = this.collection.toJSON()[0]; // HERE I GET MY VALUE!!
},
events: {
'click .loadMore': 'loadMore'
}
loadMore: function(opts){
this.showLoader();
this.currentPage++;
this.collection.fetch({url: this.collection.url + '?page='+ this.currentPage + '&value=' // HERE I NEED MY VALUE!!!! //, remove: false});
this.collection.fetch({remove: false});
this.render();
}
});
return MyStuff;
答案 0 :(得分:1)
this.suit = this.collection.toJSON()[0].nameOfYourKey;
'&value=' + this.suit
您可以访问放在this
上的视图实例指针。