1

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

我在 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
 });

编辑

我终于通过使用另一个工厂解决了这个问题:这是我用来使它工作的来源:http: //jsfiddle.net/agrublev/QjVq3/

4

3 回答 3

2

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

于 2015-02-08T04:14:07.733 回答
0

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

于 2014-12-12T18:40:54.913 回答
0

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

于 2016-01-28T06:26:12.953 回答