Я пытаюсь написать небольшую услугу в моем приложении angular, которое позволит мне выбрать параметры конфигурации, указанные в глобальных объектах Javascript. Я не хочу пытаться получить доступ к глобальному объекту конфигурации, если документ не готов (потому что я не могу гарантировать порядок, в котором элементы script будут вставлены в HTML).
Однако я не могу понять, зачем мне нужен вызов $apply
, чтобы разрешение действительно распространялось на обратный вызов then
.
myModule.service('GlobalConfigService', ['$q', '$rootScope', function($q, $rootScope) {
var def = $q.defer();
$(document).ready(function() {
def.resolve(MyConfig.val);
$rootScope.$apply();
});
def.promise.then(function () {
console.log('I am called only when $apply() is called. Why?');
});
return def.promise;
}]);