Зачем мне нужен `$ 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() вокруг задания, чтобы заставить его работать. Тем не менее, я подумал, что это нужно только тогда, когда мы находимся за пределами «Углового мира», так зачем мне это нужно в моей Угловой службе?

Ответы на вопрос(1)

Ваш ответ на вопрос