未知的提供商:ngStorageProvider <-在尝试使用Angular的ngStorage时使用ngStorag
Unknown provider: ngStorageProvider <- ngStorage when trying to use Angular ngStorage
下面的代码使用了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的字符串之前。所以在你的函数中有一个字符串比变量少
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用angular重定向到html页面
- angular.js没有'无法在PhoneGap中处理视图标记
- Javascript(Angular)从一个对象数组到第二个数组查找值
- angular 1.5应用程序中的导航栏
- angular的下拉菜单
- Angular只从数组中获取所需的数据
- 如何将不可变的js导入angular 2(alpha)
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将JSON对象传递给angular指令
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- Angular:更新一次性绑定的数据
- 同步调用,直到用户通过angular验证为访问者
- 将Angular js与taglib结合使用
- 在Angular Fullstack中设置TinyMCE
- 未知的提供商:ngStorageProvider <-在尝试使用Angular的ngStorage时使用ngStorag