У меня есть два представления в моем приложении, первое представление - это модальное диалоговое окно, а второе - это то, откуда модально запускается изначально. После закрытия модального я запускаю функцию во втором представлении, используя функцию события запуска. Функция во втором виде запускается, однако она дважды визуализирует весь второй вид. Я прочитал о зомб ie видах и убедился, что отменил и удалил модальное представление на тот случай, если оно вызывало повторяющиеся события, но это не сработало.
Вот мой класс модального представления:
var BaseModalView = base.views.View.extend({
tpl: templates.get('modalTmp'),
className: 'modal-view',
events: {
'evt:show': 'show',
'evt:hide': 'hide',
'click [data-action=resume-push-market]': 'proceed',
},
initialize: function(options) {
this.options = options;
_.bindAll(this, 'render', 'show', 'hide', 'remove');
this.render();
},
render: function() {
this.$el.html(this.tpl(this.options));
this.$el.appendTo('body');
this.$modal = this.$('.modal');
this.$modal.on('hidden.bs.modal', _.bind(function() {
this.close();
}, this));
},
show: function() {
this.$modal.modal('show');
},
hide: function() {
this.$modal.modal('hide');
},
proceed: function() {
e.preventDefault();
e.stopPropagation();
this.hide();
this.vent.trigger('resume', true);
},
close: function() {
//unbind events
this.unbind();
//Remove html from page
this.remove();
},
});
export default BaseModalView;
Вот как я слушаю триггер во втором представлении:
this.listenTo(this.vent,'resume', this.resume);
После некоторой отладки я заметил, что модальное представление освобождается и удаляется только после того, как второй вид отображается дважды после запуска функции. Я не уверен, что это нормальное поведение, так как я очень плохо знаком с Backbone. js. Буду признателен за любую помощь.
ОБНОВЛЕНИЕ: Я думаю, что я сузился до того, что вызывает дополнительные рендеры. Второе представление - это элемент в коллекции, поэтому, если у этой коллекции есть только один элемент, то есть одно представление, то когда моя функция запускается из модального режима, она будет повторно отображать это представление один раз. Однако если в коллекции несколько представлений, то при запуске функции каждое представление будет перерисовано. Я инициализировал модальное представление в каждом элементе в коллекции, так что технически он должен отображать только один элемент (представление) в коллекции, но каждый раз отображает их все. Снова не уверен, правильно ли я преувеличиваю последовательности событий магистрали. Если кто-то сталкивался с подобной проблемой, пожалуйста, дайте мне знать