注入 $cookieStore Angularjs 时未捕获的错误

Posted

技术标签:

【中文标题】注入 $cookieStore Angularjs 时未捕获的错误【英文标题】:Uncaught Error when inject $cookieStore Angularjs 【发布时间】:2016-09-21 15:45:43 【问题描述】:

我在 angularjs 中创建了一个服务,这对我来说似乎很好,但是当我将 $cookieStore 注入服务时,它给了我一个未捕获的错误,我不知道为什么会发生这种情况。

错误:

angular.js:36Uncaught Error: [$injector:unpr] http://errors.angularjs.org/1.2.16/$injector/unpr?p0=%24%24cookieReaderProv…ieReader%20%3C-%20%24cookies%20%3C-%20%24cookieStore%20%3C-%20loginService

服务文件:

myApp.factory('loginService',  ['$q','$http','API_SERVER','$cookieStore',function ($q, $http, API_SERVER,$cookieStore) 
         var login = function(username,passowrd)
         // some code
    ,

         var logout = function(username,passowrd)
          //some code
    


         return 

                    login: function (username, password) 
                        return login(username, password);
                    ,

                    logout: function (username, token) 
                        return logout(username, token);
                    ,

                ;

            ]);

如果我删除 $cookieStore 那么它可以正常工作。但是包含上面的代码会引发错误。此外,如果我将 $scope 添加到服务中,它会引发未捕获的错误。

app.js:

var myApp = angular.module('myApp', ['ngRoute',
    'ui.bootstrap',
    'ngCookies',
    'ngResource',
    'ngSanitize',
])

index.html

<script src='% static "js/angular.min.js" %'></script>
<script src='% static "js/ui-bootstrap-tpls-0.11.2.min.js" %'></script>
<script src='% static "js/angular-route.min.js" %'></script>
<script src='% static "js/angular-animate.min.js" %'></script>
<script src='% static "js/angular-resource.min.js" %'></script>
<script src='% static "js/angular-cookies.min.js" %'></script>
<script src='% static "js/angular-sanitize.min.js" %'></script>

【问题讨论】:

AngularJS: Unknown provider: $$cookieReaderProvider <- $$cookieReader <- $cookies的可能重复 【参考方案1】:

这可能是版本不匹配。确保所有 Angular JS 模块都匹配。 (请发布 angular-cookie 和 angular 的版本)。话虽如此,您说您使用的是 1.5x,但您的错误显然是 1.2.x

--原始答案:

您应该注入 $cookies$cookieStore

$cookies 的文档。 $cookieStore 一直是deprecated。

【讨论】:

更新两个参考。 $cookieStore 和 $cookies 不是问题,如果我删除两者并添加 $scope 然后它会给出相同的错误。 myApp.factory('loginService', ['$q', '$http','API_SERVER','$cookies',function ($q, $http, API_SERVER,$cookies) .......... 您的错误提示为 cookieReader,但我在您的代码中没有看到 cookie 阅读器? 你能发布 ngcookie 的版本吗?也是 1.2 倍吗?【参考方案2】:

Angular 1.5.6(最新的 Angular 1):

注意:$cookieStore 服务已被弃用。请使用 $cookies 而是服务。

https://docs.angularjs.org/api/ngCookies/service/$cookieStore

【讨论】:

他的错误是 angular 1.2.x(但我同意它已被弃用) 是的,我将 $cookieStore 替换为 $cookie,但出现同样的错误

以上是关于注入 $cookieStore Angularjs 时未捕获的错误的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS Promise 错误捕获

AngularJS $cookies 没有持久化

AngularJS 的 cookie 过期了?

angular中的$cookies和$cookieStore

$cookieStore 过期未设置

Cookie 与 CookieStore 的会话