嘗試添加一個簡單的工廠,並收到錯誤:
Error: [$injector:unpr] http://errors.angularjs.org/1.4.6/$injector/unpr?p0=subfactoryProvider%20%3C-%20subfactory%20%3C-%20authService%20%3C-%20AuthorizationInterceptor%20%3C-%20%24http%20%3C-%20%24templateRequest%20%3C-%20%24compile
我添加了一個腳本標籤:
<script src="app/subfactory.js"></script>
的subfactory被定義爲如下:
(function() {
//'use strict';
angular
.module('app')
.factory('subfactory', subfactory);
function subfactory() {
var subValue = {};
return {
set: set,
get: get
};
function get() {
return subValue;
}
function set(value) {
subValue = value;
}
}
});
它在authService使用:
(function() {
//'use strict';
angular
.module('app')
.factory('authService', authService);
authService.$inject = ['subfactory'];
function authService(subfactory) {
// removed code for brevity
mgr.getUser().then(function (user) {
if (user) {
var idToken = user.id_token;
var dataIdToken = getDataFromToken(idToken);
subfactory.set(dataIdToken.sub);
} else {
//console.log("User not logged in");
}
});
我也有AuthorizationInterceptor調用authService:
app.factory("AuthorizationInterceptor", ['$q', '$injector', '$rootScope', '$window', 'authService', function ($q, $injector, $rootScope, $window, authService) {
請,我怎樣才能解決這個問題?
編輯:
<script src="app/app.js"></script>
<script src="app/authService.js"></script>
<script src="app/subfactory.js"></script>
app.factory("AuthorizationInterceptor"...
在app.js
該錯誤消息被定義爲在F12控制檯的唯一消息。
是什麼,你的定義是那些工廠,這是什麼',你所創建的'AuthorizationInterceptor app'變量的順序'在? –
如果你看到這個錯誤,這意味着或者subfactory.js沒有被加載,或者在定義了'app'模塊的文件之前被加載(並且應該有另一個說明這個錯誤的錯誤)。 – estus