Ответы:
это немного моего кода, который хранит и загружает в локальное хранилище. Я использую широковещательные события, чтобы сохранить и восстановить значения в модели.
app.factory('userService', ['$rootScope', function ($rootScope) {
var service = {
model: {
name: '',
email: ''
},
SaveState: function () {
sessionStorage.userService = angular.toJson(service.model);
},
RestoreState: function () {
service.model = angular.fromJson(sessionStorage.userService);
}
}
$rootScope.$on("savestate", service.SaveState);
$rootScope.$on("restorestate", service.RestoreState);
return service;
}]);
sessionStorage
≠localStorage
Если вы используете $window.localStorage.setItem(key,value)
для хранения, $window.localStorage.getItem(key)
для извлечения и $window.localStorage.removeItem(key)
удаления, то вы можете получить доступ к значениям на любой странице.
Вы должны передать $window
услугу контроллеру. Хотя в JavaScript, window
объект доступен во всем мире.
Используя $window.localStorage.xxXX()
пользователь имеет контроль над localStorage
значением. Размер данных зависит от браузера. Если вы используете только $localStorage
значение, значение остается таким же, как вы используете window.location.href для перехода на другую страницу, а если вы используете <a href="location"></a>
для перехода на другую страницу, то ваше $localStorage
значение будет потеряно на следующей странице.
Для локального хранилища есть модуль для этого, смотрите ниже URL:
https://github.com/grevory/angular-local-storage
и другие ссылки для локального хранилища HTML5 и angularJs
http://www.amitavroy.com/justread/content/articles/html5-local-storage-with-angular-js/
Используйте ngStorage
для всех ваших потребностей AngularJS локального хранения. Обратите внимание, что это НЕ встроенная часть платформы Angular JS.
ngStorage
содержит две службы, $localStorage
и$sessionStorage
angular.module('app', [
'ngStorage'
]).controller('Ctrl', function(
$scope,
$localStorage,
$sessionStorage
){});
Проверьте демо
Есть еще один альтернативный модуль, который имеет больше активности, чем ngStorage
угловое локальное хранение:
Вы можете использовать localStorage
для этой цели.
шаги:
Я создал (еще один) угловой сервис хранения html5. Я хотел, чтобы автоматические обновления стали возможными ngStorage
, но сделать циклы дайджеста более предсказуемыми / интуитивно понятными (по крайней мере, для меня), добавить события для обработки, когда требуется перезагрузка состояний, а также добавить общий доступ к хранилищу сеансов между вкладками. Я смоделировал API $resource
и назвал его angular-stored-object
. Может использоваться следующим образом:
angular
.module('auth', ['yaacovCR.storedObject']);
angular
.module('auth')
.factory('session', session);
function session(ycr$StoredObject) {
return new ycr$StoredObject('session');
}
API здесь .
Репо здесь .
Надеюсь, это кому-нибудь поможет!
Выполните шаги для хранения данных в Angular - локальное хранилище:
Введите ngStorage в свой angular.module
eg: angular.module("app", [ 'ngStorage']);
$localStorage
в свой app.controller функцию4.Вы можете использовать $localStorage
внутри вашего контроллера
Eg: $localstorage.login= true;
Выше будет хранить локальное хранилище в вашем браузере приложения
В зависимости от ваших потребностей, например, если вы хотите, чтобы срок действия данных истекал, или устанавливали ограничения на количество сохраняемых записей, вы также можете посмотреть на https://github.com/jmdobry/angular-cache, который позволяет определить кеш находится в памяти, localStorage или sessionStorage.
Нужно использовать сторонний скрипт для этого, который называется ngStorage. Вот пример использования. Он обновляет localalstorage с изменением области действия / представления.
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<!-- CDN Link -->
<!--https://cdnjs.cloudflare.com/ajax/libs/ngStorage/0.3.6/ngStorage.min.js-->
<script src="angular.min.js"></script>
<script src="ngStorage.min.js"></script>
<script>
var app = angular.module('app', ['ngStorage']);
app.factory("myfactory", function() {
return {
data: ["ram", "shyam"]
};
})
app.controller('Ctrl', function($scope, $localStorage, $sessionStorage, myfactory) {
$scope.abcd = $localStorage; //Pass $localStorage (or $sessionStorage) by reference to a hook under $scope
// Delete from Local Storage
//delete $scope.abcd.counter;
// delete $localStorage.counter;
// $localStorage.$reset(); // clear the localstorage
/* $localStorage.$reset({
counter: 42 // reset with default value
});*/
// $scope.abcd.mydata=myfactory.data;
});
</script>
</head>
<body ng-app="app" ng-controller="Ctrl">
<button ng-click="abcd.counter = abcd.counter + 1">{{abcd.counter}}</button>
</body>
</html>