2015-05-21 65 views
2

我用的打字稿,我有以下值:AngularJS - 注射值返回未知提供商

export var app:ng.IModule = app || angular.module('app.common.values.authToken', []); 

app.value('authToken', {authToken: ''}); 

然後,我有類似下面的代碼用於註冊我的應用程序的東西:

export var app:ng.IModule = angular.module('app', [ 
     'ionic', 
     'templates', 
     'app.common.values.authToken', 
     'app.common.services.user' 
    ]); 

在我看來,我已經在第一個代碼塊中註冊了自己的價值,並且在第二個代碼塊中將它作爲我的應用程序的依賴項。

現在,我想在我的服務中訪問此值{authToken: ''}。我想用噴油器,但它一直返回一個未知的提供程序錯誤:

var injector = angular.injector(['ng']).get('$injector'); 
injector.get('authToken') 

Error: [$injector:unpr] Unknown provider: authTokenProvider <- authToken

我應該如何引用提供商,還是我在錯誤的方式去這件事?

+0

'$ injector.get('authToken')'應該是。您改爲提供模塊名稱。然而,在您的服務中,您可以直接注入'authToken'。 – PSL

+0

另外'var app:ng.IModule = app || angular.module('app.common.values.authToken',[])'沒用。它會一直創建一個新模塊,直接創建它。 – PSL

+0

'$ injector.get('authToken')'返回相同的錯誤...不知道我可能在這裏丟失了什麼 – JMac

回答

2

您需要確保將常量所在的模塊注入injector

沿着這個方向行事。

var injector = angular.injector(['ng','your.module.that.contains.constant']).get('$injector'); 
相關問題