vendredi 29 janvier 2016

Angular Factory Object Persisting Over Storing in Local Storage

I've got a problem that i need help with in Angular 1.4.0. I have a factory in angular which has a complex structure and method within so i am able to restore the factory back to its original state by calling the method. The factory looks like this.

 angular.module('myApp').factory('itemFcty', function(){
 var currentValues = {};
 var default values {
       a = 1,
       b = 2,
       resetData : function(){
          currentValues = angular.extend(currentValues, defaultValues);
          return currentValues 
       };
   };
   defaultValues.resetData();
   return currentValues;

}); In order to add values to 'a' i call itemFcty.a = 2; So this method works well when i want to overwrite all the values as and when required. However i have been asked could i persist the data over a refresh. So i stringify the object into JSON. Like this:

localStorage.setItem('itemFcty', JSON.parse(itemFcty);

However i have hit a snag. The only data to be stored in the local storage is the

{a = 1,b = 2,}

I can add the method back in by doing this:-

itemFcty.resetData = function(){return currentValues = angular.extend(currentValues, defaultValues);}

This is the issue that now the factory does function the same way as before as i am not able to call the function as the call and return outside the default values object is not there any more i can cannot for the life of me work out how to add it back into as everything goes directly into the object as a whole.

Your help would be greatly appreciated!




Aucun commentaire:

Enregistrer un commentaire