2017-09-29 4 views
0

ダイジェストそれぞれで実行取得に保持しません(別の問題を解決する忙しい中)なぜNG-ショー句の機能は、私がテストをやっているのサイクル

私のように定義されたdiv要素を持って、次のとおりです。

<div ng-show="myFunction()"> 
    //some content 
</div> 
私はこのコードを実行するときに、ブラウザのコンソールで、私は「言葉を見にMyFunctionのCALを維持することを期待していた

$scope.myFunction = function() { 
    console.log("myFunction called"); 
    return true; 
} 

:私は、次のJavaScript関数を持っている私のコントローラで

私は関数が各角度ダイジェストサイクルで評価されることを期待しているので、何度も繰り返し書き込まれています。しかし、私が見ていることは、それが有限のカップルと呼ばれ、それがもはや呼ばれなくなるということです。

これはなぜですか?

+0

のために見られます。これを試す必要があります $ rootScope。$ watch(function(){ }) これは$ digestループごとに呼び出されます –

答えて

1

ダイジェストサイクルがもう存在しない可能性があるので、簡単に話してください。ダイジェストサイクルは、永久に50msごとに実行される何らかの種類の「インターバルタイマ」ではなく、ページの変更やイベントに反応します。

これをテストするには、単にconsole.logsのような機能を持つ別のボタンを追加するだけで、$ scope.myFunction()あなたはスコープモデルが$保つルーピングこれ以上のモデルの変更がなくなるまで、またはサイクル/ループダイジェスト

を変更した場合 $digestサイクルが実行されると

0

は、ウォッチャーが実行されているボタンが見ていることを押したときに呼び出されます最大ループ回数が10回に達します。

あなたのケースでは、特定のポイント。 @Nicolasはおそらく何のダイジェストサイクルはもはや存在しないと述べたよう

ので、サイクルは有限の時間(少なくとも2回)のために実行されるダイジェスト、thereofore "myFunction called"は有限の時間

関連する問題