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;
});