我想使用AngularJS在本地存储中存储信息,但我还没有能够让它工作。我想知道是否有人可以帮助我?
这是我的代码:
angular.module('todo', [])
.controller('ToDoCtrl', ['$scope', function($scope, $http) {
$scope.grocerylist = [];
$scope.priority = 'normal';
$scope.addTask = function() {
if(event.keyCode == 13 && $scope.groceryName) {
$scope.grocerylist.push({"name": $scope.groceryName, "completed": false});
$scope.groceryName = "";
}
}
$scope.deleteGrocery = function(index) {
$scope.grocerylist.splice(index, 1);
}
}])
答案 0 :(得分:1)
如果你想避免第三方组件,你实际上只需要将$window
作为依赖注入你的控制器/服务/等,这将允许你访问$window.localStorage
和{{1 }}
为您的示例(更改了一些细节):
$window.sessionStorage
通常,将这些问题抽象到服务是一个好主意,因此您可以在不更改控制器代码的情况下在不同的存储方法(例如localStorage与sessionStorage和POST到服务器)之间切换。
答案 1 :(得分:0)
对所有AngularJS本地存储需求使用ngStorage
ngStorage
包含两项服务:$ localStorage和$ sessionStorage。
angular.module('app', [
'ngStorage'
]).controller('Ctrl', function(
$scope,
$localStorage,
$sessionStorage
){});
这里是Demo
干杯!
答案 2 :(得分:0)
包括模块" ngStorage":
angular.module('todo', ['ngStorage'])
有关此内容的更多信息:https://github.com/gsklee/ngStorage
之后,您可以在控制器中注入$ localStorage并保存您喜欢的内容。
.controller('ToDoCtrl', ['$scope', function($scope, $http, $localStorage) {
//...
}
答案 3 :(得分:0)
我通常会像这样保存
app.run(function($rootScope) {
window.onbeforeunload = function(event) {
$rootScope.$broadcast('saveState');
};
});
$rootScope.$on('saveState', function() {
sessionStorage.data = angular.toJson(data);
});