AngularJS 1.6 注入documentService报UNK Provider错误问题咨询
AngularJS UNK Provider错误修复方案
核心问题1:URL依赖未注册
你遇到的[$injector:unpr]错误已经明确给出根因:URLProvider <-- URL <-- documentService,说明你在documentService中注入的URL常量没有在当前AngularJS模块中注册。
你个人站点的代码可以正常运行,是因为你提前在站点的AngularJS模块中通过app.constant()或者app.value()注册了该常量,当前接手的项目没有对应配置才会报错。
核心问题2:服务方法名拼写错误
你的documentService返回的方法名存在拼写错误:
// 错误写法 return ({ getDocunment: getDocuments });
少写了一个字母e,就算解决了依赖问题,后续调用documentService.getDocuments()时也会出现方法不存在的报错。
额外隐患:废弃API使用
AngularJS 1.5版本已经废弃了$http的success和error方法,建议改用标准的Promise链式调用写法,避免后续出现兼容问题。
修复步骤
- 在模块初始化位置注册
URL常量,替换为实际接口地址:
app.constant('URL', '你的实际文档接口地址');
- 修正服务返回的方法名拼写:
return ({ getDocuments: getDocuments });
- (可选)优化
$http调用写法:
let getDocuments = function () { return $http.get(URL) .then(function (response) { console.log('SUCCESS: Documents retreived', response.data); return response.data; }) .catch(function (e) { console.log(`He's dead Jim!`, e); return e; }) }
内容的提问来源于stack exchange,提问作者Peter The Angular Dude
相关产品推荐
相关产品推荐

