如何在$ log decorator中访问服务器端配置

时间:2014-04-10 07:00:35

标签: angularjs angular-decorator

我有以下路由 - 这是主页(主页)的一部分:

templateUrl: 'pages/home.html',
    controller: 'HomeCtrl',
    resolve: {
        myConfig: function (appConfig) {
            return appConfig.retreiveConfig();
        }
    }

流程如下,我在主页加载之前从服务器加载配置,所以我可以在那里使用它。

此外,我使用decorator作为' $ log'服务,

现在提出问题:如何在$log decorator内使用路由解析中加载的配置?

我不介意在装饰器中使用一些默认配置,直到从服务器到达正确的配置。


我似乎似乎找不到使用$http$resource的任何服务的方法,因为循环依赖 < / p>


是否以任何方式手动/有问题地初始化装饰器

1 个答案:

答案 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;
}