2016-11-14 12 views
0

私はsetTimeoutを(内側)(ダイジェスト$を使用)と不思議の例を発見しましたありがとう!

答えて

1

これは、基本的なjavascript関数がAngularによって選択されないためです。

$timeout(function(){ 
    // everything in here will be picked up by angular's digest cycle 
}); 

$scope.$digest()は手動のサイクルを消化角度トリガする方法ですが、私は考えることができない。このようなもののために、角度は、独自のサービス、すなわち$timeoutサービスを持っているので、私は、これは良い習慣です言うことはありませんあなたがこれを望むユースケース。

はさえを使用すると、ネイティブのJavaScriptで発生したコードを持っている場合、私はこのようにそれを行うだろう:。

setTimeout(function() { 
    $scope.$apply(function() { 
     // do stuff that will be picked up by angular 
    }); 
} 
+1

'$スコープ$(ダイジェスト)'間違いなく、そのユースケースを持っています。 '$ scope。$ apply()'とは対照的に、階層全体ではなく、現在のスコープについてのみダイジェストをトリガします。しかし、OPはそれを想定しているとは考えにくい。 – estus

関連する問題