2017-10-05 1 views
0

簡単な工場を追加しようとするとエラーを取得:

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は以下のように定義されます次の:それはのAuthServiceに使用されている

(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; 
     } 
    } 

}); 

(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"); 
      } 
     }); 

私はまたのAuthServiceを呼び出すことAuthorizationInterceptorを持っている:

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"...は、エラーメッセージがF12コンソールでのみメッセージであるapp.js

に定義されています。

+0

はあなたがそれらの工場を定義し、どのようなあなたは 'AuthorizationInterceptorを作成しているこの' app'変数があるされる順序とは何ですか「? –

+0

このエラーが表示された場合、これは、subfactory.jsがロードされていないか、 'app'モジュールが定義されているファイルの前にロードされていたことを意味します(それを示す別のエラーがあるはずです)。 – estus

答えて

1

コメントとして追加できません。だからここに答えを加えなさい。ファイル宣言の順序を変更する必要があります。あなたの場合は、subfactory.jsの前にauthService.jsがあるためにエラーが発生します。 authService.jsはその依存関係を検索し、まだ追加されていないとしてsubfactory.jsと見なしません。

<script src="app/app.js"></script>// If it main file whre angular module is created 
<script src="app/subfactory.js"></script> 
<script src="app/authService.js"></script> 
+0

エラー:[$ injector:nomod] http://errors.angularjs.org/1.4.6/$injector/nomod?p0 = app' - 元のエラー –

+0

app.jsがメインファイルの場合whre angleモジュールが定義されています。 – Ved

2

好きなあなたの宣言ファイルの順序を反転してくださいすることは、次のとおりです。

// only define your module here 
<script src="app/app.js"></script> 

// define your factories 
<script src="app/subfactory.js"></script> 
<script src="app/authService.js"></script> 

// define your authorization factory here just like the previous two 
<script src="app/Authorization.js"></script> 
+0

になりました。エラー:[$ injector:nomod] http://errors.angularjs.org/1.4.6/$injector/nomod?p0 = app' - 元のエラー –

+0

私の答えを更新しました。 –

+0

ありがとう、あなたも親指をしてください? –

関連する問題