AngularJS和来自ngStorage的$ localStorage问题:错误:[$ injector:unpr]未知提供者:

时间:2014-08-28 16:15:09

标签: angularjs angular-local-storage

看起来我的问题非常简单(我可能很愚蠢;))但是无法指出它。

我在Angular上找到了一些关于localStorage(使用ngStorage)的相同问题,但我不明白为什么这种语法不起作用:

 function myCtrl($scope, $http, $resource, $storage, $localStorage) {
   ....
 }

 myCtrl.$inject = ['$scope', '$http', '$resource', '$storage', '$localStorage'];

我也定义了app.js中的应用程序(安装ngStorage之后):

 angular.module('onBoardingApp', ['ngStorage', 'ngResource']);

如果出现错误,则生成此类:

 Error: [$injector:unpr] Unknown provider: $storageProvider <- $storage

有些人正在使用angular.module注入(我尝试过没有任何成功)

 angular.module('app', [
   'ngStorage'
 ]).controller('myCtrl', function(
   $scope,
   $localStorage
 ){
  //foo
 });

修改

我终于通过使用另一家工厂解决了这个问题:$ store。 以下是我过去使用的来源:http://jsfiddle.net/agrublev/QjVq3/

3 个答案:

答案 0 :(得分:2)

我可能会弄错,但看起来你没有将正确的引用传递给你的控制器。正确的用法只是$ sessionStorage或$ localStorage。您正在使用的$ storage引用似乎从GitHub页面上的示例中错误地获取,并且您的代码正在爆炸,因为没有实际的$ storage提供程序。

答案 1 :(得分:0)

尝试清除浏览器历史记录。如果控制器已具有该控制器的localStorage变量,并且它与新的localStorage变量冲突,则可能会收到此错误。

答案 2 :(得分:0)

在您的应用中使用 ngStorage 数据持久性,此处每当您重新启动应用程序时,数据都会持续存在。 ngStorage将数据存储在HTML5本地存储将存储的相同位置。这只是本地存储的包装器。 然而,本地存储存储在您的浏览器中,因此只要您不清除数据,它就会永远存在。 在这种情况下,重置服务器数据可能存在一些逻辑问题。