0

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

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

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

另外我decorator用于'$log'服务,

现在的问题是:如何使用我的路由解析中加载的配置$log decorator

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


似乎找不到使用任何使用$http$resource由于循环依赖的服务的方法


没有办法手动/有问题地初始化装饰器

4

1 回答 1

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;
}
于 2014-04-10T07:19:19.583 回答