2016-11-05 3 views
0

このコードでは、ngStorageを使用しています。 が、私はこれが私の角度のアプリの一部であり、実行しようとすると、私はコンソールにこのエラーを取得:不明なプロバイダ:ngStorageProvider < - ngStorage Angular ngStorageを使用しようとしたとき

Error: [$injector:unpr] Unknown provider: ngStorageProvider <- ngStorage <- signupController 

なぜ? controller.js

var smallTalkzModel = angular.module('smallTalkzModel', ['ui.router', 'luegg.directives', 'ngCookies', 'ngStorage', 'angular-jwt']); 

smallTalkzModel.controller('signupController', ['$scope', '$location', '$http', 'userDetails','ngStorage', 
    function ($scope, $location, $http, userDetails,$localStorage) { 

     $scope.register_user = function (info) { 
      $http({ 
       url: '/register_user', 
       method: 'POST', 
       data: info 
      }).then(function (response) { 
       $localStorage.jwt = response.data.id_token; 
       $location.path('main'); 
      }, function (error) { 
       alert(error.data); 
      }); 
     } 
    }]); 

更新に

記号:

は$ localStorageinコントローラ偶然にを含むようにコードを変更しました。

mainController.js

:今、私のコードは未定義のlocalStorageのエラーをスローこれはどこで

controller('signupController', ['$scope', '$location', '$http', 'userDetails', '$localStorage', 
    function ($scope, $location, $http, userDetails, $localStorage) { 

     $scope.login_info = ""; 
     $scope.userDetails = userDetails.isLogged; 
     $scope.userLogin = false; 
     $http.get('/online_users') 
      .success(function (data) { 
       $scope.usersNumber = data.length; 
      }) 
      .error(function (data) { 
       console.log('Error: ' + data); 
      }); 

     $scope.register_user = function (info) { 
      $http({ 
       url: '/register_user', 
       method: 'POST', 
       data: info 
      }).then(function (response) { 
       $localStorage.jwt = response.data.id_token; 
       $location.path('main'); 
      }, function (error) { 
       alert(error.data); 
      }); 
     } 

    }]); 

...エラーmesgeがなくなっていますが、私はそれにassigmnetを行った後$のlocalStorageが定義されていません

smallTalkzModel.controller('mainController', ['$scope', 'sessionInfo', '$location', '$http', 'userDetails','$localStorage', 
    function ($scope, sessionInfo, $location, $http, userDetails, jwtHelper,$localStorage) { 

     $scope.login_info = ""; 
     $scope.userLogin = userDetails.isLogged; 

     var jwt = $localStorage.jwt; // here $localStorage is undefined 
.......... 

} 

答えて

2

ngStorageをインストールしてプロジェクトに追加する必要があります。角度のあるコアの一部ではありません。

既にインストールされている場合は、プロジェクトにスクリプトを追加するのを忘れたためにエラーが発生する可能性があります。

ここで公式ドキュメント:ここhttps://github.com/gsklee/ngStorage

例:How to use ngStorage in angularjs

UPDATE

私はあなたが(文字列部分で)ngStorageを注入しているsignupControllerコントローラに比べて見ます注射は$ localStorageまたは$ sessionStorageでなければなりません。これは、ngStorageがプロバイダではなくモジュールであるため、問題を引き起こしています。

UPDATE 2:あなたがメインコントローラ、二番目のパラメータを宣言している場合

あなただけ$のlocalStorageための文字列の前に、jwtHelperのための文字列を追加するのを忘れて、あなたのコントローラがあり、依存するモジュールです。 。したがって、あなたの関数内に1つの文字列があります。

+0

これが問題であるかどうかわからない私はnpmstorage --saveをインストールし、cdnスクリプトsrcをindex.htmlに追加しました。 – Matoy

+0

cdnをインストールしていない場合は、ファイルへのローカルパスを使用してください。 – fiso

+0

@Matoy、私の更新をチェックして、私は答えがあると思います。 – fiso

関連する問題