【发布时间】:2014-06-04 20:14:24
【问题描述】:
在我的 Angular 应用程序中,我有一个设置模块,我将其设为常量。我认为它应该是一个常量因为常量在其他提供方法之前应用。
我还有 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)
此模块需要全局可用,并且不必是常量。我只需要在任何其他模块之前对其进行初始化。
我该怎么做?
【问题讨论】:
-
一方面,您似乎在说需要在实例化服务之前进行设置。另一方面,您似乎在说它取决于其他服务。这些是相互矛盾的陈述。
-
你是对的,我只是想出了我真正需要的东西。 getUserIdService 和 getTokenService 应该是常量,我应该在服务“设置”中调用它们
-
还可以考虑使用提供者而不是服务。它将在所有服务之前加载。如果需要,您可以通过 this.$get 在提供程序中进行后期依赖注入。
标签: angularjs