注入 $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 时未捕获的错误的主要内容,如果未能解决你的问题,请参考以下文章