以下はangularのドキュメントです。のフィルター文字列を構築するために、このスコープの一部であるいくつかの変数を監視していますng-grid
。このスコープが破棄されている場合、からの戻り値を呼び出して監視$scope.$watch
を解除する必要がありますか、それともスコープの破棄で十分ですか? 監視されている変数がこのスコープの一部ではない場合はどうなりますか?
スコープと共に破棄されている変数を「ウォッチ解除」しないと、メモリ リークやパフォーマンスの問題が発生しますか。
$destroy()
親スコープから現在のスコープ (およびそのすべての子) を削除します。削除は、への呼び出しが$digest()
現在のスコープとその子に伝播されなくなることを意味します。削除は、現在のスコープがガベージ コレクションの対象であることも意味します。
は通常、ループの展開を管理する$destroy()
などのディレクティブによって使用されます。ngRepeat
スコープが破棄される直前に、$destroy
このスコープでイベントがブロードキャストされます。アプリケーション コードは$destroy
、必要なクリーンアップを実行する機会を与えるイベント ハンドラーを登録できます。
AngularJS には$destroy
、要素が DOM から削除される前に DOM バインディングをクリーンアップするために使用できる jQuery イベントもあります。