Merge pull request #129 from webjunkie01/master

Fixed an issue with cookie based storage where values were not being parsed as objects.
master
Gregory Pike 10 years ago
commit 5616a668d1

@ -115,6 +115,12 @@ angularLocalStorage.provider('localStorageService', function() {
// If local storage is not available in the browser use cookies // If local storage is not available in the browser use cookies
// Example use: localStorageService.add('library','angular'); // Example use: localStorageService.add('library','angular');
var addToLocalStorage = function (key, value) { var addToLocalStorage = function (key, value) {
// Let's convert undefined values to null to get the value consistent
if (typeof value === "undefined") {
value = null;
}else if (angular.isObject(value) || angular.isArray(value)) {
value = angular.toJson(value);
}
// If this browser does not support local storage use cookies // If this browser does not support local storage use cookies
if (!browserSupportsLocalStorage || self.storageType === 'cookie') { if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
@ -128,11 +134,6 @@ angularLocalStorage.provider('localStorageService', function() {
return addToCookies(key, value); return addToCookies(key, value);
} }
// Let's convert undefined values to null to get the value consistent
if (typeof value === "undefined") {
value = null;
}
try { try {
if (angular.isObject(value) || angular.isArray(value)) { if (angular.isObject(value) || angular.isArray(value)) {
value = angular.toJson(value); value = angular.toJson(value);
@ -329,7 +330,13 @@ angularLocalStorage.provider('localStorageService', function() {
thisCookie = thisCookie.substring(1,thisCookie.length); thisCookie = thisCookie.substring(1,thisCookie.length);
} }
if (thisCookie.indexOf(deriveQualifiedKey(key) + '=') === 0) { if (thisCookie.indexOf(deriveQualifiedKey(key) + '=') === 0) {
return decodeURIComponent(thisCookie.substring(prefix.length + key.length + 1, thisCookie.length)); var storedValues = decodeURIComponent(thisCookie.substring(prefix.length + key.length + 1, thisCookie.length))
try{
var obj = JSON.parse(storedValues)
return angular.fromJson(obj)
}catch(e){
return storedValues
}
} }
} }
return null; return null;
@ -401,4 +408,3 @@ angularLocalStorage.provider('localStorageService', function() {
}]; }];
}); });
}).call(this); }).call(this);