グローバル Javascript オブジェクトで指定された構成パラメーターを選択できるようにする、Angular アプリで小さなサービスを作成しようとしています。ドキュメントの準備ができていない限り、グローバル構成オブジェクトにアクセスしようとはしません (スクリプト要素が 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;
}]);