この例では、ページ上でng-hide
を使用して要素を更新するのに、$rootScope.$apply()
が必要なのはなぜですか?
私の経験上、$scope.$apply()
を$scope.$watch
に入れたときは、「ダイジェストはすでに進行中です」というエラーが表示されます。これは違うの?
app.component('myComponent', {
controller: function(){
$scope.visible = false;
$rootScope.$on('someEvent', function(){
$scope.visible = true;
$rootScope.$apply(); // why?
});
}
});
何も表示されていないことが示唆されています。あなたの状況で推測することはできません – charlietfl
$ rootScope。手動でダイジェストサイクルを実行する必要がある場合には$ apply()が必要です。角度のコンテキストから何かが発生して、 manualllyダイジェストサイクルを実行してください。ダイジェストサイクルが実行されていて、それを適用しようとすると、そのエラーが発生します。 –
このケースでは必要ないと思います。 '$ scope。$ on'はすでにダイジェストサイクルを呼び出していますので、関数内のすべての変更はすでに更新されています。 – Icycool