Angular 1.7出现$injector:unpr未知提供者错误,求解决方案
这个错误的核心原因很明确: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
相关产品推荐
相关产品推荐

