2016-10-05 3 views
2
$rootScope.$on('$stateChangeStart', function (event, state) { 
      ... 
     }) 

результат -> эс ошибка ворса «$ на» вызов должен быть назначен переменной, для того, чтобы быть разрушен во время $ уничтожить событиеКак улучшить угловую ошибку на экране eslint-plugin?

но если я исправить это как в documentation

var unregister = $rootScope.$on('$stateChangeStart', function (event, state) { 
      ... 
     }) 

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

Что это лучший способ, чтобы исправить эту проблему?

+0

Правило появляется, чтобы проверить, что переменная [используется в качестве аргумента] (https://github.com/Gillespie59/eslint-plugin -angular/blob/1.4.1/rules/on-watch.js # L66-L73) в вызове '$ destroy'. Вы это делаете? Или вы просто назначаете игнорируемую переменную иначе? – cartant

+0

нет, не делая этого, переменная не будет очищена автоматически? – Juri

+1

Прошло некоторое время с тех пор, как я работал с AngularJS, поэтому я не авторитет в этом, но я думаю, что правило заключается в том, что часы на '$ rootScope' не будут автоматически очищены и что' $ destroy' нужно вызвать (и передать переменную). – cartant

ответ

1

Переменная unregister, возвращаемая $rootScope.$on, является функцией, которая должна быть вызвана для отмены регистрации часов. Общий случай использования является вызов, когда текущая область разрушается:

$scope.$on('$destroy', unregister);