Following the local storage tutorial on the Ionic blog , I am trying to set / get the localStorage value when my Ionic application starts, but I get an error:
Uncaught Error: [$injector:unpr] Unknown provider: $localstorageProvider <- $localstorage
My app.js code:
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services']) .run(function($ionicPlatform, $localstorage) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } $localstorage.set('name', 'Ian'); console.log($localstorage.get('name')); }); })
And services.js:
angular.module('starter.services', []) .factory('localstorage', ['$window', function($window) { return { set: function(key, value) { $window.localStorage[key] = value; }, get: function(key, defaultValue) { return $window.localStorage[key] || defaultValue; }, setObject: function(key, value) { $window.localStorage[key] = JSON.stringify(value); }, getObject: function(key) { return JSON.parse($window.localStorage[key] || '{}'); } } }]);
Not sure what I'm missing here.
EDIT . If I change my app.js code to the following, it will work as expected:
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services']) .run(function($ionicPlatform, $localstorage) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } window.localStorage.setItem('name', 'Ian'); console.log(window.localStorage.getItem('name')); }); })