You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 1.7出现$injector:unpr未知提供者错误,求解决方案

解决Angular 1.7的$injector:unpr注入错误(cookieStore相关)

这个错误的核心原因很明确:AngularJS 1.7已经彻底移除了$cookieStore服务——它早在1.3版本就被标记为废弃,1.7直接砍掉了这个API,而你当前使用的angular-translate-storage-cookie版本还在依赖这个已被移除的服务,所以才会触发注入失败。

下面是具体的解决步骤:

方案1:升级angular-translate相关存储模块

确保你的angular-translate-storage-cookie和angular-translate-storage-local版本与Angular 1.7兼容。旧版本的angular-translate-storage-cookie依赖$cookieStore,而新版本已经适配了Angular 1.3+的$cookies服务。

你可以更新bower依赖,比如在bower.json里指定兼容版本:

{
  "dependencies": {
    "angular": "~1.7.0",
    "angular-cookies": "~1.7.0",
    "angular-translate": "~2.18.4",
    "angular-translate-storage-cookie": "~2.18.4",
    "angular-translate-storage-local": "~2.18.4"
  }
}

然后执行bower update更新依赖。

方案2:如果不需要Cookie存储,直接切换到LocalStorage

既然你提到“仅将cookies作为依赖引入,未用于任何特殊功能”,那可以直接在angular-translate的配置中禁用Cookie存储,改用LocalStorage,这样就绕开了对$cookieStore的依赖:

myApp.config(function($translateProvider) {
  $translateProvider
    .useStaticFilesLoader({
      prefix: 'i18n/', // 你的翻译文件前缀
      suffix: '.json'  // 翻译文件后缀
    })
    // 明确使用LocalStorage作为翻译存储媒介
    .useLocalStorage()
    // 设置应用默认语言
    .preferredLanguage('zh-CN');
});

额外检查项

  • 确认你的ngCookies模块已经正确注入到应用模块中(你已经完成这一步,无需调整)。
  • 排查代码中是否有遗留的$cookieStore调用,如果有,全部替换为Angular 1.7支持的$cookies服务方法(比如$cookies.get()、$cookies.put())。

内容的提问来源于stack exchange,提问作者Sarath Kaif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:21:43