simple example of using local storage

by Sub Taper

HTML

<h1>Hello LocalStorage!</h1>

<div>
    <button data-ng-click="storageKeys=localStorage.getKeys()">Refresh</button>
    <button data-ng-click="localStorage.clear()">Clear</button> <span data-ng-show="storageKeys.length==0">No data stored in local storage</span>

</div>
<div>Add localstorage values
    <label>Key
        <input type="text" data-ng-model="userKey" />
    </label>
    <label>Value
        <input type="text" data-ng-model="userValue" />
    </label>
    <button data-ng-disabled="!userKey" data-ng-click="set()">+</button>
</div>
<div>
    <ul data-ng-show="storageKeys.length>0">
        <li data-ng-repeat="key in storageKeys">{{key}} ->{{get(key)}}</li>
    </ul>
</div>

JavaScript

// https://docs.angularjs.org/guide/providers
 // way more complex example of what was done in this file ->
 // https://github.com/grevory/angular-local-storage/blob/master/angular-local-storage.js

 var localStorageService = function () {
     this.storageType = 'localStorage';

     this.get = function (name) {
         //console.log('fetching ' + name);
         try {
             var raw = window.localStorage[name];

             if (raw && raw !== 'undefined' && raw !== 'null') {
                 //console.log('getting name ' + name);
                 var parsed = JSON.parse(raw);
                 if (!parsed) return null;
                 return parsed;
             }
         } catch (ex) {
             console.log('Exception ' + ex);
         }
         return null;
     };

     this.set = function (name, value) {

         var raw = window.localStorage[name];
         console.log("before setter:" + raw);

         var localObject = !! (raw) && raw !== 'undefined' && raw !== 'null' ? JSON.parse(raw) : {};

         if (value && localObject.value !== 'undefined') {
             localObject = value;
         } else {
             delete localObject[name];
         }

         var serialized = JSON.stringify(localObject);
         console.log('serialized in setter to :' + serialized);
         console.log('serialized' + localObject[name]);
         window.localStorage.setItem(name, JSON.stringify(localObject));
     };

     this.clear = function () {
         localStorage.clear();
     };

     this.getKeys = function () {
         var keys = [];
         for (var i = 0; i < localStorage.length; i++) {
             keys.push(localStorage.key(i));
         }
         return keys;
     };
 };
 //angular.module('tpc')
 //   .factory('localStorageService', [
 //     function() {
 //       return new localStorageService();
 //     }
 //   ]);
 // Code goes here
 var app = angular.module('myApp', []);

 app.factory('localStorage', function () {
     return new...