2015-02-26 3 views
1

У меня есть несколько просмотров. В некоторых из них у меня есть подобные события, какКак отключить все события перед визуализацией нового представления

events: { 
    'click #save': 'save' 
} 

Когда я создаю и сделать новый вид старого прослушивание события остается настолько старый Algorythm все еще работает, когда я уже изменить вид.

Как я знаю, есть функция stopListening(), но как я могу активировать все предыдущие виды. Поэтому, когда я изменяю представление/страницу, я хочу отключить все предыдущие события. Как я могу это сделать?

+0

Неясно, какой тип событий, которые вы хотите отключить - [Магистральная] (Http: // backbonejs.org/#Events-catalog) или DOM-события? BTW, 'stopListening' применимо только к базовым событиям. – hindmost

+0

@hindmost, - DOM –

ответ

2

ID являются глобальными, вы не должны иметь более одного на страницу. Вместо этого добавьте свои события в класс.

events: { 
'click .save-btn': 'save' 
} 

Кроме того, убедитесь, что вы распоряжаться своим видом, как только вы закончили их с помощью:

var MyView = Backbone.View.extend({ 
    events: { 
    'click .save-btn': 'save' 
    }, 

    ... 

    dispose: function() { 
    this.unbind(); 
    this.remove(); 
    } 
}; 

var view = MyView(); 
... 
view.dispose(); 

Приветствия.

+0

что означает «закончил использовать их»? i переключаю страницы, поэтому, когда я перенаправляю пользователя в любом месте, мне нужно отключить все предыдущие виды. так как я могу разобрать все взгляды один раз? –

0

попытаться использовать el.

var MyView = Backbone.View.extend({ 
    el: '#wrapper_of_save_element', 

    events: { 
     'click #save': 'save' 
    }, 

    save: function() { 
     ... 
    } 
}); 

так ваше мероприятие только внутри #wrapper_of_save_element (., Например обертка ДИВ)

http://backbonejs.org/#View-el

Смежные вопросы