Почему $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() требуется, если вы хотите вручную запустить цикл дайджеста, поэтому, если что-то происходит из контекста угловой, который изменяет угловые переменные, которые вы должны manuallly запускать цикл дайджест. Когда цикл дайджест запущен, и попробуйте применить его, вы получите u, что ошибка –
Я не думаю, что это необходимо в этом случае. '$ scope. $ on' уже вызывает цикл дайджеста, поэтому все изменения внутри функции будут уже обновлены. – Icycool