未知的提供商:ngStorageProvider <-在尝试使用Angular的ngStorage时使用ngStorag

Unknown provider: ngStorageProvider <- ngStorage when trying to use Angular ngStorage

本文关键字:Angular ngStorage ngStorag ngStorageProvider 提供商 未知      更新时间:2023-09-26

下面的代码使用了ngStorage。但是当我试图运行这是我的angular应用程序的一部分时,我得到了这个错误到控制台:

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

为什么?

sign in 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);
            });
        }
    }]);
更新:

修改了代码,在控制器参数中包含了$ localstorage。现在错误消息消失了,但是$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);
            });
        }
    }]);

这就是我的代码抛出undefined localstorage错误的地方:

mainController.js

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
..........
}

你需要安装ngStorage,并把它添加到你的项目中。它不是角核的一部分。

如果您已经安装了它,则可能因为忘记在项目中添加脚本而导致错误。

官方文档:https://github.com/gsklee/ngStorage

在angularjs中如何使用ngStorage

:

我看到在控制器signupController你注入ngStorage(在字符串部分)时,注入应该是$localStorage或$sessionStorage。这是因为ngStorage是一个模块,而不是一个提供商。

更新2 :

当您声明mainController时,第二个参数是您的控制器所依赖的模块,在那里,您忘记添加jwtHelper的字符串,就在$localStorage的字符串之前。所以在你的函数中有一个字符串比变量少