如何使控制器在加载页面之前提供工厂数据angularJS

问题描述:

我正在使用工厂进行$http调用并将数据共享到所有控制器。如何使控制器在加载页面之前提供工厂数据angularJS

实际上,我从config.json文件获取该数据,但首先加载数据并未广播到所有控制器。
我希望数据在控制器可以进一步调用之前可用。

config.jsonapp_keyapp_secretbase_url等,这里是我厂(JS代码)

JS

.factory('UserService', function($http, $rootScope) { 

    $http.get('config.json').success(function(data) { 
     var app_key = data.app_key; 
     var app_secret = data.app_secret; 
     var base_url=data.base_url; 
     window.localStorage['app_key'] = app_key; 
     window.localStorage['app_secret'] = app_secret; 
     window.localStorage['base_url'] = base_url; 


    }) 

    return { 
     app_key : window.localStorage['app_key'], 
     app_secret : window.localStorage['app_secret'], 
     base_url:window.localStorage['base_url'], 

    } 
}) 

我config.json文件看起来像这样

{ 
    "app_key" : "my_app_key_here", 
    "app_secret" : "my_app_secret_here", 
    "base_url" : "http://base_url.com", 
} 

的原因我正在返回app_key:window.localStorage ['app_key']是因为我需要访问此服务数据控制器中的userService.app_key。

​​

任何人都可以告诉我我犯了什么错误吗?

加载此依赖项的正确位置在您的模块运行/配置方法中。

检查文档在这里:https://docs.angularjs.org/guide/module#module-loading-dependencies例如和更多信息...

+0

嗨@elCarda感谢您的答复,可以请你给我提供任何小提琴或小例子来做出这样的电话吗? –