如何在角度中使用恒定模块?

时间:2014-06-04 20:14:25

标签: angularjs

在我的角度应用程序中,我有一个设置模块,我做了一个常量。我认为它应该是一个常量因为常量在其他提供方法之前应用

我还有2项服务:getUserIdServicegetTokenService,分别为userIdtoken

angular.module('app').constant('settings', {
    streamServer: 'http://someurl.com:9009',
    userId: /* $getUserIdService.getUserId() */
    token: /* $getTokenService.getToken() */
});

我在api constant中看到的没有构造函数,因此我无法传递任何依赖项(getUserIdServicegetTokenService

此模块需要全局可用,并且不必是常量。我只需要它在任何其他模块之前进行初始化。

我该怎么做?

1 个答案:

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