我有以下路由 - 这是主页(主页)的一部分:
templateUrl: 'pages/home.html',
controller: 'HomeCtrl',
resolve: {
myConfig: function (appConfig) {
return appConfig.retreiveConfig();
}
}
流程如下,我在主页加载之前从服务器加载配置,所以我可以在那里使用它。
此外,我使用decorator
作为' $ log'服务,
现在提出问题:如何在$log
decorator
内使用路由解析中加载的配置?
我不介意在装饰器中使用一些默认配置,直到从服务器到达正确的配置。
我似乎似乎找不到使用$http
或$resource
的任何服务的方法,因为循环依赖 < / p>
是否以任何方式手动/有问题地初始化装饰器?
答案 0 :(得分:0)
您可以尝试做的是以缓存配置数据的方式实现您的appConfig.retrieveConfig
服务方法。然后调用装饰器中的appConfig.retreiveConfig()
在装饰者中
appConfig.retreiveConfig().then(function(data) {
//Update your decorator configuration
});
您retreiveConfig
应该解析一次配置,因此服务方法看起来像
var config;
serviceObj.retreiveConfig=function() {
var defer=$q.defer();
if(config) { defer.resolve(config);}
someRemoteCall().then(function(data)) {
config=data;
defer,resolve(config);
}
return defer.promise;
}