Как очистить события при ручной загрузке ng-grid в одностраничном приложении Angularjs

Я работаю над гибридным SPA со многими модулями angularJS в существующем приложении. При ручной начальной загрузке ng-grid дважды или более события ngGridEventStartCellEdit умножаются каждый раз при повторной загрузке модуля. Это похоже на то, что события DOM всегда связаны даже после выхода из модуля.

Я попытался поймать событие $destroy следующим образом:

elm.bind('$destroy', function(event) {
   elm.off('blur');
   elm.off('mousedown');
   elm.off('keydown');
});

Но это ничего не делает.

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

Спасибо заранее.


person user3087757    schedule 10.12.2013    source источник


Ответы (1)


Согласно документам jQuery здесь:

http://api.jquery.com/off/

Вызов .off() без аргументов удаляет все обработчики, прикрепленные к элементам. Кроме того, попробуйте использовать цель события, например:

element.bind('$destroy', function (event) {
   event.target.off();
});
person Rob J    schedule 10.12.2013