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

結果 - コール「の$」は$破壊イベントeslint-plug-in-on-watchエラーを改善するにはどうすればよいですか?

時に破壊されるためには、変数に代入する必要があります> ESリントエラーが、私はdocumentation

のようにそれを修正した場合
var unregister = $rootScope.$on('$stateChangeStart', function (event, state) { 
      ... 
     }) 

i「は登録解除が定義されているが使用されることはありません」というエラーが表示されます

この問題を修正するための最良の方法は何ですか?

+0

ルールは変数(https://github.com/Gillespie59/eslint-plugin [引数として使用]していることを確認するように見えます-block/1.4.1/rules/on-watch.js#L66-L73)を '$ destroy'呼び出しに追加します。あなたはそれをやっていますか?あるいは、無視された変数に代入していますか? – cartant

+0

いいえ、そうしないと、変数は自動的にクリーンアップされませんか? – Juri

+1

私はAngularJSで作業していたのでしばらくしていましたので、私はこのようなことについて権威はありませんが、 '$ rootScope'の時計は自動的にはクリーンアップされず、 $ destroy'を呼び出す必要があります(そして変数を渡します)。 – cartant

答えて

1

$rootScope.$onによって返される変数は、時計の登録を解除するために呼び出す必要がある関数です。一般的な使用例は、現在のスコープが破棄されるときにそれを呼び出すことです:

$scope.$on('$destroy', unregister); 
関連する問題