Зачем мне нужен `$ rootScope. $ Apply ()` в моей угловой службе?
В моем приложении есть всплывающая модальная службаOverlay
, Это просто переворачивает некоторые логические значения на$rootScope
это заставляет 2 директивы показать / скрыть соответственно. Вот функция, которая вызывается при показе нового модального
overlay.NewGears = {
show: function(msg){
_displayBackground();
scope.message = msg;
scope.feedback = null;
scope.url = '/partials/Common/gears.html';
$rootScope.$apply(function(){
$rootScope.modalVisible = true;
});
},
hide: function(){
_hideBackground();
$rootScope.modalVisible = false;
}
};
Как вы видите, я отображаю непрозрачный фон, затем я установил переменную с именемscope
который позже передается в мою директиву через DI. Но затем я заметил, что мой модал не появлялся, когда должен, а вместо этого появлялся в СЛЕДУЮЩЕМ цикле дайджеста послеmodalVisible
переменная была установлена в true. Затем я должен был добавить$apply()
вокруг задания, чтобы заставить его работать. Тем не менее, я подумал, что это нужно только тогда, когда мы находимся за пределами «Углового мира», так зачем мне это нужно в моей Угловой службе?