2016-05-31 25 views
0

をカスタムサービスを追加中にエラーを取得する私はAngularJSで新たなんだと私はその後、私はこのようなエラーを取得しています新しい認証サービスを追加するつもりだとき、私は角JSでのセットアップのすべてを持っていますが、:角度JSで

enter image description here私はサービスを作成する必要があり

はセットのためsessionService.jsと呼ばれ、セッション
にユーザー値を取得し、私はサービスを作成したユーザ認証をチェックするためauthService.jsと呼ばれ、ユーザー名を取得し、それ等の

ここ

はここsessionService.js

'usre strict'; 

app.factory('sessionService', ['$http', function($http){ 
    return { 
     set : function(key,value){ 
      return sessionStorage.setItem(key,value); 
     }, 
     get : function(key){ 
      return sessionStorage.getItem(key); 
     }, 
     destroy : function(key){ 
      return sessionStorage.removeItem(key); 
     } 
    } 
}]) 

である私もindex.htmlの中

<script src="js/app.js"></script> 
    <script src="js/config.js"></script> 
    <script src="js/config.lazyload.js"></script> 
    <script src="js/config.router.js"></script> 
    <script src="js/main.js"></script> 
    <script src="js/services/ui-load.js"></script> 
    <script src="js/services/sessionService.js"></script> 
    <script src="js/services/authService.js"></script> 
    <script src="js/filters/fromNow.js"></script> 
    <script src="js/directives/setnganimate.js"></script> 
    <script src="js/directives/ui-butterbar.js"></script> 
    <script src="js/directives/ui-focus.js"></script> 
    <script src="js/directives/ui-fullscreen.js"></script> 
    <script src="js/directives/ui-jq.js"></script> 
    <script src="js/directives/ui-module.js"></script> 
    <script src="js/directives/ui-nav.js"></script> 
    <script src="js/directives/ui-scroll.js"></script> 
    <script src="js/directives/ui-shift.js"></script> 
    <script src="js/directives/ui-toggleclass.js"></script> 
    <script src="js/controllers/bootstrap.js"></script> 

そして中に、この両方のサービスを追加したauthService.js

'use strict'; 

app.factory('authService', ['$http','sessionService', function($http,sessionService){ 
     var loggedIn; 
    var isAdmin; 
    var username; 
    var id; 

    var checkLogin = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(loggedIn != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(loggedIn); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        isAdmin = data.is_admin; 
        username = data.username; 
        id = data.id; 
        defer.resolve(loggedIn); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var returnUsername = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(username != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(username); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        username = data.username; 
        defer.resolve(username); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var returnId = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(id != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(id); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        id = data.id; 
        defer.resolve(id); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var setUserData = function(callback) { 
     return $http.get('/api/checkLogin'); 
    } 

    return { 
     loggedIn: function() { return checkLogin(); }, 
     username: function() { return returnUsername(); }, 
     id: function() { return returnId(); }, 
    } 
}]) 

ですapp.js

'use strict'; 


angular.module('app', [ 
    'ngAnimate', 
    'ngAria', 
    'ngCookies', 
    'ngMessages', 
    'ngResource', 
    'ngSanitize', 
    'ngTouch', 
    'ngStorage', 
    'ui.router', 
    'ui.bootstrap', 
    'ui.utils', 
    'ui.load', 
    'sessionService', 
    'authService', 
    'ui.jq', 
    'oc.lazyLoad', 
    'pascalprecht.translate', 
]); 

私はこの問題を解決するための助けが必要です。
私はAngulr Bootstrap Adminパネルを使用しています。
ご協力いただければ幸いです。

エラーは、モジュールとしてsessionServiceauthServiceを処理し、あなたのappに依存関係としてそれらをロードしているということであるあなたに

+0

モジュールエラーのインスタンス化に失敗しましたか? –

+0

はい、それはエラーで表示されますが、私はそれを取得していません。 –

+0

'angular.js'の参照を追加していません –

答えて

0

ありがとうございます。それらはサービスであり、モジュールではありません。たとえエラーでも同じことが言えます。サービスは他のサービスにインジェクトでき​​ますが、モジュールの依存関係としてロードすることはできません。

変更app.jsであなたのコードは、以下のようなサービスを削除するには:

'use strict'; 


var app = angular.module('app', [ 
    'ngAnimate', 
    'ngAria', 
    'ngCookies', 
    'ngMessages', 
    'ngResource', 
    'ngSanitize', 
    'ngTouch', 
    'ngStorage', 
    'ui.router', 
    'ui.bootstrap', 
    'ui.utils', 
    'ui.load', 
    'ui.jq', 
    'oc.lazyLoad', 
    'pascalprecht.translate', 
]); 
+0

はい、私はこれをしましたが、このエラーのように表示されます:**キャッチされていないエラー:[$ injector:modulerr]モジュールappのインスタンス化に失敗しました: エラー:[$ injector:unpr]不明なプロバイダ:authService ** –

+0

このエラーは、 'authService'コードに構文エラーがあることを意味します。あなたはそれを再チェックするか、あなたの完全なコードでplunkrを作成できますか? –

+0

これを確認してください:https://plnkr.co/edit/PNQM7VnWxLlBiLI9KdO5?p=info –

0

は、他のすべての後にあなたのapp.jsスクリプトを含めます。

+0

?? –

+0

はい、index.htmlで –

+0

が動作していません他のモジュールが見つかりませんでしたので、最後に追加できません –

0

あなたのアプリケーションは、他のjsファイルで使用するためにグローバルにインスタンス化されていますか?さんは

App.js

var app = angular.module('app',[dependencies]); 
$(function(){ 
//Other code 
}()); 

そして、他のjsファイルでインスタンス化されたアプリを使用して言ってみましょう。