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

Angular服务调用出现[$injector:unpr]错误,请求技术指导

解决Angular [$injector:unpr] 依赖注入错误

嘿,这个[$injector:unpr]错误我太熟了——本质就是Angular的依赖注入器找不到你声明要注入的依赖项,看你贴的代码,问题很明显,咱们一步步来解决:

1. 补全控制器的依赖注入声明

你贴的控制器代码明显截断了:app1.controller("HomeController", ['$scope', 'API...,这里应该是要注入你定义的APIService但没写完整。这是最直接的问题,补全后的控制器代码应该是这样:

app1.controller("HomeController", ['$scope', 'APIService', function($scope, APIService) {
  // 举个例子,调用服务的getSkill方法
  APIService.getSkill(123)
    .then(function(response) {
      $scope.userSkills = response.data;
    })
    .catch(function(error) {
      console.error('获取技能评分失败:', error);
    });
}]);

注意:数组里的字符串'APIService'必须和你定义的服务名称完全一致,后面的函数参数名也要对应上(用这种数组式注入,就算之后压缩代码也不会出问题,因为Angular是靠数组里的字符串来识别依赖的)。

2. 优化服务的注入方式(可选但推荐)

你的服务定义里注入了$http,虽然未压缩时能正常运行,但如果之后要压缩代码,参数名会被混淆,导致注入失败。最好也改成数组式注入:

app1.service('APIService', ['$http', function ($http) {
  this.getSkill = function (userid) {
    return $http({
      url: "api/GetSkillRating",
      method: "GET",
      params: { userid: userid }
    });
  }
}]);

3. 确认页面加载和模块引用

最后再检查一下页面的基础配置:

  • 确保页面里先加载angular.min.js,再加载你写的这个脚本文件;
  • HTML里的ng-app指令要正确指向你的模块homeapp,比如:
<div ng-app="homeapp" ng-controller="HomeController">
  <!-- 你的页面内容 -->
</div>

基本上做完这几步,这个[$injector:unpr]错误就应该消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:14:11