爲什麼在本示例中需要$rootScope.$apply()
更新頁面上使用ng-hide
的元素?
以我的經驗,每當我把$scope.$apply()
放在$scope.$watch
的內部,我就會得到「摘要已在進行中」錯誤。這是不同的?
app.component('myComponent', {
controller: function(){
$scope.visible = false;
$rootScope.$on('someEvent', function(){
$scope.visible = true;
$rootScope.$apply(); // why?
});
}
});
沒有任何顯示錶明它是需要的。提供一個[mcve]我們不能猜測你的情況 – charlietfl
$ rootScope。當你想手動運行摘要循環時需要$ apply(),所以如果任何事情發生在角度的上下文之外,那麼修改角度變量必須手動啓動摘要循環。一旦摘要循環正在運行,你試着應用它會給你那個錯誤 –
我不認爲這是需要在這種情況下。 '$ scope。$ on'已經調用了摘要循環,所以函數內部的每一個變化都會被更新。 – Icycool