私は指示のコントローラーで$scope.$watch
を宣言しています。ページを変更してディレクティブが削除されたら、手作業で破壊する必要がありますか?もしそうなら、どのように指令が削除されたかを検出するのですか?Angularjs指令は時計を取り外しますか?
答えて
これは、ディレクティブではなくスコープによって異なります。スコープが破棄された場合、その$ watcherはすべてそのスコープで終了します。あなたのスコープは角度によって破壊されるので、あなたは安全でなければなりません。
スコープが終了すると、$ destroyイベントが発生します。あなたはそれを見ることができます。
$scope.$on('$destroy', callback);
と、手動でそれが返す関数を呼び出すことで、範囲から$ウォッチャーを切り離すことができます。
var sentinel = $scope.$watch('expression', callback);
sentinel(); // kill sentinel
あなたはあまりにも上の$でこれを行うことができます。
まず、スコープが破壊されると、すべてのウォッチャーがそれで死ぬと言いました。次にスコープ$ destroyイベントでウォッチャーを手動で削除するように提案しました(なぜ?スコープで自動的に死ぬはずです)。それは私には意味がありません。どうぞあなたは詳しく教えていただけますか? – hendrix
ngViewでページを変更すると、最後のスコープがウォッチャーでクリーンアップされます。 (proof => http://goo.gl/GD0pM9) また、angleはウォッチャー破棄関数を提供しますので、現在のスコープでそれを必要としない場合は手動で式を削除することができます。 – Oliver
- 1. アレイはangularjs指令
- 2. AngularJS指令値
- 3. angularJS ES6指令
- 4. Angularjs指令
- 5. Angularjsコントローラ指令
- 6. AngularJSディスプレイプリローダー - 指令
- 7. about angularJS指令
- 8. AngularJS指令
- 9. angularjs指令内の外部ファイルのコントローラ
- 10. AngularJSコントローラからの指令
- 11. AngularJS指令のTabindex
- 12. は、YouTubeのAngularJS指令
- 13. AngularJS - 指令関数呼び出しを指令へ
- 14. Angularjs指令が機能しません
- 15. AngularJSは指令による申告時に再確認します
- 16. AngularJS - ngのリピート指令
- 17. AngularJSへのダウングレードNG2指令
- 18. 指令のAngularJS更新値
- 19. AngularJS指令へのJavascript
- 20. ReactアプリケーションへのAngularJS指令
- 21. Angular 4対AngularJs指令
- 22. AngularJS 1.5はES6の指令にサービスを注入します
- 23. 2つの指令Angularjsの間で通信しますか?
- 24. AngularJS 1.5.5指令:$ element.find()/ $ element.children()は常に
- 25. AngularJS指令は連想配列
- 26. Angularjs指令双方向バインディングはhtmlを更新しません
- 27. AngularJS指令ngClassが機能していませんか?
- 28. AngularJS指令コントローラ機能を無効にします
- 29. コントローラの指令からfunctionを呼び出す方法は? AngularJS
- 30. Angularjs、$ http.postで顧客指令を作成
角はあなたのためにそれを配慮する必要があります –