Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Angular local storage (https://javascript.ru/forum/angular/61797-angular-local-storage.html)

Junior 09.03.2016 15:18

Angular local storage
 
Добрый день! Подскажите, пожалуйста, как лучше организовать local storage в Angular. Я так понимаю нужно создать сервис типа:

myApp.factory("localStorage",['$window',function($window){

       return {
           set: function(key, value){
               $window.localStorage[key] = value;
           },
           get: function(key, defaultValue){
               return $window.localStorage[key] || defaultValue;
           },
           setObject: function(key, value){
               $window.localStorage[key] = JSON.stringify(value);
           },
           getObject: function(key){
               return $window.localStorge = JSON.parse($window.localStorge[key] || '{}');
           },
           removeObject (key){
               delete  $window.localStorage[key];
           }
       }

Или есть более простой способ? Спасибо!


}]);

krasovsky 10.03.2016 07:00

Вопрос в том зачем тебе localStorage? Если что бы хранить что то пока "живет" приложение то:
ангуляр по сути - одностраничник. А так как ты делаешь factory - а это по сути синглтон - незачем лезть в window.
myApp.factory("localStorage",['$window',function($window){
       var myStorage = {};
       return {
           set: function(key, value){
               myStorage [key] = value;
           },
           get: function(key, defaultValue){
               return myStorage [key] || defaultValue;
           },
          ......
       }
}]);

Этот сервис будет хранить значения пока не произойдет перезагрузка страницы.
Если тебе нужен именно localStorage для работы с вкладками браузера то стоить почитать как работать с ним https://developer.mozilla.org/en-US/...e/LocalStorage

Junior 10.03.2016 12:26

Мне нужно, чтобы данные в таблице, которая заполняется через ng-repeat, оставались после обновления страницы! Спасибо!


Часовой пояс GMT +3, время: 16:55.