Squashed commit of the following:
commit 8beff969457285fb85d10ca96205a3dc7a3d729f Author: George Bonner <georgebonnr@gmail.com> Date: Mon May 12 16:31:42 2014 -0700 typo fix commit 8ba0a658b5e1831dfd3b8299327a2be50ecec0f2 Author: George Bonner <georgebonnr@gmail.com> Date: Mon May 12 16:19:35 2014 -0700 Fix commit 5d9c6c5afd4b9a56a03522e644c01d41c2a344eb Author: George Bonner <georgebonnr@gmail.com> Date: Mon May 12 15:58:48 2014 -0700 fix unhandled errors in chrome $window[storageType] would throw unhandled error in Chrome some cases as browserSupportsLocalStorage() had not yet been called.
This commit is contained in:
parent
2cdbb7e5ff
commit
1c5cabf7ac
9
angular-local-storage.js
vendored
9
angular-local-storage.js
vendored
@ -70,7 +70,7 @@ angularLocalStorage.provider('localStorageService', function() {
|
||||
var cookie = this.cookie;
|
||||
var notify = this.notify;
|
||||
var storageType = this.storageType;
|
||||
var webStorage = $window[storageType];
|
||||
var webStorage;
|
||||
|
||||
// When Angular's $document is not available
|
||||
if (!$document) {
|
||||
@ -96,6 +96,7 @@ angularLocalStorage.provider('localStorageService', function() {
|
||||
// that exceeded the quota."
|
||||
var key = deriveQualifiedKey('__' + Math.round(Math.random() * 1e7));
|
||||
if (supported) {
|
||||
webStorage = $window[storageType];
|
||||
webStorage.setItem(key, '');
|
||||
webStorage.removeItem(key);
|
||||
}
|
||||
@ -107,6 +108,8 @@ angularLocalStorage.provider('localStorageService', function() {
|
||||
return false;
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
|
||||
// Directly adds a value to local storage
|
||||
// If local storage is not available in the browser use cookies
|
||||
@ -131,7 +134,7 @@ angularLocalStorage.provider('localStorageService', function() {
|
||||
if (angular.isObject(value) || angular.isArray(value)) {
|
||||
value = angular.toJson(value);
|
||||
}
|
||||
webStorage.setItem(deriveQualifiedKey(key), value);
|
||||
if (webStorage) {webStorage.setItem(deriveQualifiedKey(key), value)};
|
||||
if (notify.setItem) {
|
||||
$rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: this.storageType});
|
||||
}
|
||||
@ -151,7 +154,7 @@ angularLocalStorage.provider('localStorageService', function() {
|
||||
return getFromCookies(key);
|
||||
}
|
||||
|
||||
var item = webStorage.getItem(deriveQualifiedKey(key));
|
||||
var item = webStorage ? webStorage.getItem(deriveQualifiedKey(key)) : null;
|
||||
// angular.toJson will convert null to 'null', so a proper conversion is needed
|
||||
// FIXME not a perfect solution, since a valid 'null' string can't be stored
|
||||
if (!item || item === 'null') {
|
||||
|
Reference in New Issue
Block a user