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; }); |
ExXxTaSy,
Цитата:
Цитата:
app.service('foo', function() { this.bar = 'baz' }); |
Цитата:
я думал что вариант решения попроще. что то из моего дописать никак? а то мне не совсем понятно что в том примере происходит. не все моменты. |
Цитата:
ну а вообще то да уже это делать для всех браузеров. |
Цитата:
|
Цитата:
Цитата:
$window.localStorage ... Цитата:
angular .module('moduleName', []) .service('foo', function() { this.bar = 'baz' }) .controller('FooCtrl', ['foo', function(foo){ alert(foo.bar); }]) |
Цитата:
то есть если я возьму этот кусок .module('moduleName', []) .service('foo', function() { this.bar = 'baz' }) .controller('FooCtrl', ['foo', function(foo){ alert(foo.bar); }]) в него вставлю то что вы по ссылке дали, то все будет ок?) теперь вопрос что куда ставить) сорри. я просто немного изменил квалификацию, и на жутких нервах, постоянно в панике. нужно както бы успокоиться) и в примере не 20 строк а около 200 без коментов |
такс. начинаю врубатся.
мне нужно подрубить это файл что вы бросили в ссылке. а далее что то типа ngular.module('app', [ 'ngStorage' ]). controller('Ctrl', function( $scope, $localStorage ){ $scope.$storage = $localStorage.$default({ ... }); }); вот тут то и должно как то происходить типа работа с выбором хранилища? |
так. если я верно понял.
нужно подключить тот скрипт что вы бросили. далее как то его использовать по принципу angular.module('app', [ 'ngStorage' ]). controller('Ctrl', function( $scope, $localStorage ){ $scope.$storage = $localStorage.$default({ x: 42 }); }); только не пойму как |
я еще больше запутался
|
Часовой пояс GMT +3, время: 04:04. |