Существует очень хорошее объяснение отмены регистрации транслируемых событий корневого диапазона здесь
В одном из ответов есть это объяснение:
Вот источниккод о логике отмены регистрации.Вы можете сделать:
$rootScope.$on('action2@QuestionStatusController1', function () {
$rootScope.$$listeners['action2@QuestionStatusController1'] = [];
})
или вызвать функцию отмены регистрации, возвращенную из $ on ()
var deregistration = $rootScope.$on('action2@QuestionStatusController1', function () {
deregistration();
})
Могу ли я просто отменить регистрацию всего моего $ rootcopeсобытия без каких-либо последствий?
Или я должен придерживаться старого $ scope. $ on ('destroy' fn ())?