Collection error: [$ injector: unpr] Unknown Ionic Framework / AngularJS provider

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')); }); }) 
+6
source share
2 answers

Returning to this, I was able to fix this by entering $ window:

 .run(function($ionicPlatform, $window ) { 

Then I managed to get / install using:

 $window.localStorage.setItem( 'name', 'Ian' ); $window.localStorage.getItem( 'name' ); // Ian 
+1
source

Had the same problem with implementing the Ionic tutorial: http://learn.ionicframework.com/formulas/localstorage/

This worked when I removed the $ sign in front of localstorage.

 .run(function($ionicPlatform, localstorage) 
+7
source

Source: https://habr.com/ru/post/973169/


All Articles