我试图在我的角应用程序中写一个小服务,这将使我能够选择在全局Javascript对象中指定的配置参数。我不想尝试访问全局配置对象,除非文档准备好了(因为我不能保证脚本元素将被插入到HTML中的顺序)。
然而,我不明白为什么我需要调用$ apply的分辨率实际传播到那个回调。
- 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;
- }]);