在我的角度应用程序中,我有一个设置模块,我做了一个常量。我认为它应该是一个常量因为常量在其他提供方法之前应用。
我还有2项服务:getUserIdService
和getTokenService
,分别为userId
和token
。
angular.module('app').constant('settings', {
streamServer: 'http://someurl.com:9009',
userId: /* $getUserIdService.getUserId() */
token: /* $getTokenService.getToken() */
});
我在api constant
中看到的没有构造函数,因此我无法传递任何依赖项(getUserIdService
,getTokenService
)
此模块需要全局可用,并且不必是常量。我只需要它在任何其他模块之前进行初始化。
我该怎么做?
答案 0 :(得分:2)
使用角度模块运行方法初始化数据。您可以将服务注入run方法并使用它来初始化数据
示例演示:http://plnkr.co/edit/TW5r7YM5gkevWr2hjmZs?p=preview
JS:
var app = angular.module('plunker', []);
app.value('settings', {
streamServer: 'http://someurl.com:9009',
userId:null ,/* $getUserIdService.getUserId() */
token: null/* $getTokenService.getToken() */
}).run(function($http,$timeout,settings){//inject your services here
settings.userId = 'guru';//call services to get the user id
settings.token = 'tkn39';
});