2016-04-11 5 views
1

私は次のコードを持っている:NG-かの実行方法を連続的

data-ng-if="(fooCtrl.displayControl(1)) 

displayControl方法はtrueまたはfalseを返します。

私が見つけたのは、ngifは、それが一度評価された後でも常にこれを聞いているということです。私がこれを見つけたのは、メソッドのブレークポイントを指すことでした。いくつかのF8の後(デバッガで)、それは通常通り続きます。

なぜngifがこのメソッドを連続的に実行していますか?

+1

'ngIf'は、' $ digest'サイクルごとに評価されます。その方法の大きさに応じて、サイトを荒らす可能性があります。 – tymeJV

+0

'data-ng-if =" :: fooCtrl.displayControl(1) "' – dfsq

答えて

2

あなたのすべての組み込みのディレクティブは、すべての$digestサイクルでトリガされますので、ng-showまたはng-ifのようなディレクティブを使用しての点に注意して角度ダイジェストサイクルherehere

についての詳細を参照し、それらが上で聞くことはありません。関数は多くの処理や関数をいくつかのループとそのようなものを持っている、彼らはすでに決定ブール値または単純な関数を聞いて維持する

+0

あなたのご意見ありがとうございました! – Haris

4

角度は各ダイジェストサイクルで各ウォッチャー関数を実行するので、これはあなたの関数複数回チェックされます。この動作が望ましくない場合は、one-time binding(角1.3.x)と考えることができます。

data-ng-if=":: fooCtrl.displayControl(1)" 
+0

plus1 1回バインディング情報を入力していただきありがとうございます! – Haris

関連する問題