Я создаю приложение Backbone.js, я использую BackboneJS Radio для обмена сообщениями.BackboneJS Радиоканал запускает события более одного раза
Сначала я создал канал:
App.actionsChannel = Backbone.Radio.channel('actions');
И когда я нажимаю кнопку действия, скажем, кнопку 'Далее' действия:
App.actionsChannel.trigger('action:triggered', 'next');
И обрабатывать действия:
App.actionsChannel.on('action:triggered', function(actionName){
//do some ajax requests
});
Проблема заключается в том, что когда я нажимаю на следующую кнопку в первый раз, она вызывает next
один раз, а второй раз он срабатывает дважды, третий раз он запускается 4 раза и т. Д.
Каждый раз, когда я запускаю следующее действие, он срабатывает много раз, не один раз. И когда я проверил actionsChannel._events
, я обнаружил, что содержит все действия, которые я запускал.
Я использую функцию 'on' только в одном месте. У меня есть два представления, один запускает событие, а другой ловит его при инициализации – kdureidy
. Я думаю, что проблема в том, что у меня есть зомби-представления, когда изменяется маршрут, создается новое представление, созданное до того, как текущий вид, который ловит событие, уничтожен – kdureidy
Favor 'listenTo' над' on' по этой причине. –