14

AngularJSでバインディングを切断する適切な方法は何ですか?

angularjs を使用してデータバインディングを行うコンポーネントをロードしている角度のないアプリケーションがあります。ある時点で、コンポーネントを破棄し、メモリ リークがないことを確認したいと考えています。DOM のその部分からすべてのイベント リスナーを削除するように angular に指示するにはどうすればよいですか?

トリックを実行しますか$(node).remove()、またはアンギュラーはクリーンアップする必要があるメモリ内の他のことを行いますか...? angularでのメモリリークを回避するためのその他のヒントをいただければ幸いです。

4

1 に答える 1

10

Scope を持つ DOM 要素を次のように削除するだけではremove()、メモリ内の Scope は削除されません。これは、要素を削除してBatarangを調べるか、親スコープを取得してその子を調べることで確認できます。スコープがまだそこにあることがわかります....したがって$destroy()、スコープ自体も呼び出す必要があります。

$destroy() の詳細については、こちらを参照してください

編集:私が確信していないことの1つは、スコープを完全に削除するか、単に切断してJavaScript GCに残りを処理させるかです。

于 2012-12-12T19:44:58.503 に答える