У меня есть главный вид для создания списков. это представление имеет событие щелчка, чтобы «загрузить больше элементов».
У меня есть два дополнительных представления, расширяющих основной вид.
Моя проблема заключается в том, что, когда я нажимаю на кнопку «Загрузить еще» в одном представлении, это влияет на другое представление (если оно было загружено ранее). Я понимаю, что необходимо закрыть представления перед инициализацией другого, но поскольку мои представления расширяют главное представление, этот метод не будет работать (он закрывает главный объект, а другие дочерние представления не будут инициализироваться):
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 для всех представлений, выходящих из основного представления, если они уже инициализированы.
Что мне делать?