我正在尝试在我的 Angular 应用程序中编写一个小服务,这将使我能够选择在全局 Javascript 对象中指定的配置参数。除非文档准备好,否则我不想尝试访问全局配置对象(因为我无法保证将脚本元素插入 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;
}]);