我有一个创建列表的主视图。这个视图有一个点击事件来“加载更多的项目”。
我有两个扩展主视图的子视图。
我的问题是,当我单击一个视图“加载更多”按钮时,它会影响另一个视图(如果之前加载)。我知道在初始化另一个视图之前我必须关闭视图,但是由于我的视图正在扩展主视图,因此此方法不起作用(它会关闭主对象,并且其他子视图不会初始化):
Backbone.View.prototype.close = function(){
this.remove();
this.unbind();
}
我的主视图:
App.Views.List = Backbone.View.extend({
events: {
'click .load-btn' : 'loadMore'
},
loadMore: function(e)
{
this.collection.increase().fetch({
add: true
});
e.preventDefault();
}
}
注意 .increase 是增加 api 参数的自定义方法。
子视图:
App.Views.Projects = App.Views.List.extend({
initialize: function()
{
this.itemView = App.Views.Project;
this.collection = new App.Collections.Projects();
this.parent('initialize');
},
render: function()
{
this.template = _.template(App.Tpl.get('projects.list'));
this.parent('render');
}
});
请注意, .parent 是调用主视图方法的自定义方法。
因此,当我单击视图中的加载更多按钮时,如果已经初始化,它会尝试在从主视图扩展的所有视图上调用 loadMore 方法。
我应该怎么办?