angular によって行われないスコープ内の更新は、angular には認識されません。$scope.$apply();したがって、 current の値を更新するときに使用する必要があります$scope。
Angular は双方向のデータ バインディング メカニズムであるため、モデルを変更するとビューが更新され、その逆も同様です。内部で angular は$digest、現在のすべてのチェックを行うサイクルを実行します$scope。Angular 内の変数で更新を行っている限り、$scope正常に動作しますが、それ以外では、ネイティブ javascript や jQuery などの他のライブラリで値を変更する場合は、$digestサイクルを実行する必要があります。ここ$scope.$apply()が便利です。
$scope.$digest()も非常に便利で、現在のスコープで実行されますが、内部で実行され、内部$scope.$apply()で実行されるため、よりもかなり高速です。 $scope.$digest()$scope.$apply()$rootscope$rootscope.$digest()
$scope.$digest()これを最初に使用するには、スコープウォッチャーをセットアップする必要があり、実際に行うことは、スコープの変更を常に監視し、この場合、角度または他のソースからのものであるかどうかは、スコープウォッチャーをセットアップするための完璧な例ですで使用したい場合$scope.$digest()。
$scope.$watch('reportLoaded', function(newValue, oldValue, scope) {
scope.reportLoaded = newValue !== oldValue ? newValue : oldValue;
});