Показать сообщение отдельно
  #1 (permalink)  
Старый 26.01.2017, 09:03
Аспирант
Отправить личное сообщение для ExXxTaSy Посмотреть профиль Найти все сообщения от ExXxTaSy
 
Регистрация: 25.07.2012
Сообщений: 32

localstorage service script
помогите добить скрипт. примерно понимаю что нужно сделать, но не до конца могу понять как реализовать.
пытаюсь решить проблемы с локальным хранилещем в сафари(при включенном privat mode)

мне нужно написать сервис который будет проверять работает ли локальное хранилище и если не работает то хранить данные в обьекте.
проверку примерно вроде как сделал.
а вот как хранить данные в обьекте и как сделать данный сервис публичным что бы по всему проекту его могли использовать не пойму.
по идее должен быть публичный метод какой то.
больше всего не понимаю как хранить данные потому что они по всему проекту разные.
набросал 2 вараинта. какой то из них хоть немного приближен к реальности?))
///v1
var localStorage = angular.module('moduleName', []);
moduleName.factory('localStorageService', function() {
    var storageSupportedService;
    //isStorage?
    var hasLocalStorageSupport = 'localStorage' in $window && $window.localStorage !== null;
    if (hasLocalStorageSupport) {
        var testKey = 'key';
        try {
            $window.localStorage.setItem(testKey, '1');
            $window.localStorage.removeStorage(testKey);
        } catch  (e) {
            // $scope.result = object;
            // return $scope.result;
            // localStorage.setItem( "obj", JSON.stringify( obj ) );
            hasLocalStorageSupport = false;
        }
    }
    return storageSupportedService;
});

///v2
var localStorage = angular.module('moduleName', []);
moduleName.factory('localStorageService', function() {
    var storageSupportedService;
    //isStorage?
    function isLocalStorageSupported() {
        var testKey = 'key', storage = window.localStorage;
        try {
            storage.setItem(testKey, '1');
            storage.removeItem(testKey);
            return localStorageName in window && window[localStorageName];
        } catch (error) {
            // return $scope.result;
            // localStorage.setItem( "obj", JSON.stringify( obj ) );
            return false;
        }
    }
    return storageSupportedService;
});
Ответить с цитированием