描述:
我有一个用户信息屏幕,我们可以在其中获取用户详细信息并在选择save
时将其存储在数据库中(仅激活一次)。我在我的控制器中使用$localStorage
来保存用户输入的数据,以便在关闭和打开应用程序时存在相同的信息。而且,当编辑信息时,更改应该在设置中看到,并且还存储在数据库中和$localStorage
中。
问题:
当我尝试保存数据时,我收到错误Error: [$injector:unpr] Unknown provider: $localStorageProvider <- $localStorage <- revenue-management-controller
.这是我第一次尝试使用$localStorage
,我不确定我是否正确使用它。我试图使用两个$localStorage
,一个用于存储save
操作期间的数据。另一个在update
行动中。所以请帮忙。
目录:
Name:
<input type="text ng-model="name">
DOB:
<input type="date" ng-model="dob">
Area of Interest:
<input type="text" ng-model="interest">
<button type="submit" ng-click="Add()">Add</button>
<button type="submit" ng-click="update()">Update</button>
控制器:
myApp.controller('userInfo', function ($scope, $state, $localStorage, userDataManagement) {
$scope.Add = function () {
var userData = {'name': $scope.name, 'dob': $scope.dob, 'interest': $sope.interest};
$localStorage.savedInfo = userData;
userDataManagement.postData(userData, error);
};
$scope.update = function () {
var userData2 = {'name': $scope.name, 'dob': $scope.dob, 'interest': $scope.interest};
$localStorage.updateInfo = userData2;
userDataManagement.postData(userData2, error)
};
}
)
如果您错误: [$injector:unpr] 未知提供程序:
错过依赖项,则始终会引发此错误。此"单击此处"是您必须添加才能使用$localstorage
的模块。查看模块和语法。
或者您可以使用 $window.localStorage
,确保$window
位于参数部分中。
确保正确安装本地存储模块并将其添加到项目中:https://github.com/grevory/angular-local-storage:
<!doctype html>
<html ng-app="myApp">
<head>
</head>
<body>
...
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
<script src="bower_components/js/angular-local-storage.min.js"></script>
...
<script>
var myApp = angular.module('myApp', ['LocalStorageModule']);
</script>
...
</body>
</html>
之后,您可以在控制器中安装$localstorage,如下所示:设置一个值:
myApp.controller('MainCtrl', function($scope, localStorageService) {
//...
function submit(key, val) {
return localStorageService.set(key, val);
}
//...
});
获取一个值:
myApp.controller('MainCtrl', function($scope, localStorageService) {
//...
function getItem(key) {
return localStorageService.get(key);
}
//...
});
因此,对于您的控制器,它将是这样的:
myApp.controller('userInfo',function($scope, $state, localStorageService, userDataManagement){
$scope.Add=function(){
var userData={'name':$scope.name, 'dob':$scope.dob, 'interest':$sope.interest};
localStorageService.set("savedInfo",userData);
userDataManagement.postData(userData,error);
};
$scope.update=function(){
var userData2 = {'name':$scope.name, 'dob':$scope.dob, 'interest':$scope.interest);
localStorageService.set("updateInfo", userData2;
userDataManagement.postData(userData2,error);
};
})