gpt4 book ai didi

javascript - 未知提供商 : ngStorageProvider <- ngStorage when trying to use Angular ngStorage

转载 作者:行者123 更新时间:2023-11-28 18:18:13 25 4
gpt4 key购买 nike

我下面有使用 ngStorage 的代码。但是当我尝试运行这是我的 Angular 应用程序的一部分时,我在控制台上收到此错误:

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);
});
}
}]);

更新:

更改了代码以将 $localStorage 包含在 Controller 参数中。现在错误消息消失了,但是在我将 assigmnet 添加到 $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);
});
}

}]);

这是我的代码抛出未定义本地存储错误的地方:

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,并将其添加到您的项目中。它不是 Angular 核心的一部分。

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

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

这里是一个例子:How to use ngStorage in angularjs

更新:

我发现在 Controller signupController中,当注入(inject)应该是$localStorage或$sessionStorage时,您正在注入(inject)ngStorage(在字符串部分)。这导致了问题,因为 ngStorage 是一个模块,而不是提供程序。

更新2:

当您声明 mainController 时,第二个参数是您的 Controller 所依赖的模块,在那里,您忘记在 $localStorage 的字符串之前添加 jwtHelper 的字符串。因此,函数中的变量少了一个字符串。

关于javascript - 未知提供商 : ngStorageProvider <- ngStorage when trying to use Angular ngStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40440876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com