2016-04-14 3 views
1

私は人々がangular $ digest()をどのように使うのか分かりません。 簡単な例を教えてください。

+0

は良い説明のために、私はこのブログの記事をお勧めしたいです。ただし、ユニットテストのディレクティブでは、$ apply()を呼び出すことは同じ効果がありますが、必要になる可能性があります。 –

答えて

2

基本的に、$digest()は、ダイジェストサイクル(評価ウォッチャーおよびレンダービュー)を角度でトリガーします。あなたはこれを自分で呼ぶのではなく、代わりに$applyAsync()を好むべきです。これは、一部のデータを非同期に更新し、これらの変更についてAngularに通知する場合に便利です。あなたは、生産コードで()ダイジェスト$使用するべきではありません http://www.sitepoint.com/understanding-angulars-apply-digest/

0

角度の範囲外にあるイベントにコールバックが添付されている場合は、その関数が実行/終了すると、ダイジェストサイクルは決して実行されません。 $ダイジェストまたは$が、バインディングを更新し、任意の時計を発射する角度伝え適用呼び出し

app.directive('tooltip',function(){ 
    return{ 
     restrict: 'A', 
     link: function(scope,element,attr){ 
      element.bind('mouseover',function(e){ 

       scope.setStyle(e); 

      }); 
     } 
    } 
}); 


$scope.setStyle = function(e){ 
    $scope.style = { 
     position: 'absolute', 
     // some other styles 
    }; 

    $scope.$apply(); 
}; 

(ディレクティブの例をもMouseEventのため)。

私はそれが役に立ちそうです。

関連する問題