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

AngularJS注入authFactory报[$injector:unpr]错误的解决方法

解决AngularJS注入authFactory时出现的[$injector:unpr]错误

嘿,我看了你的代码,这个错误其实是AngularJS依赖注入里两个常见的小问题导致的,咱们一步步来修复:


问题1:重复创建模块覆盖了你的authFactory

你在定义authFactory的时候,已经通过angular.module('login', [])创建了login模块。但在写控制器的时候,你又用了同样的语法angular.module('login', [])——这里的第二个空数组[]告诉AngularJS重新创建这个模块,而不是获取已经存在的模块,这就把你之前定义的authFactory给覆盖掉了,所以注入的时候自然找不到它。

修复方法

把控制器里的模块获取代码改成这样(去掉第二个参数[]):

(function () {
  'use strict';
  // 去掉[],获取已存在的login模块
  angular.module('login').controller("LoginController", loginController)
  // ...
})();

问题2:依赖注入数组里的authFactory缺少引号

在loginController.$inject这个注入数组里,你写的authFactory是一个未定义的变量,但AngularJS需要的是字符串形式的依赖名称。这就导致AngularJS无法识别你要注入的服务。

修复方法

把authFactory改成带引号的字符串'authFactory':

loginController.$inject = ['$cookies', '$log', '$scope', '$rootScope', '$q', '$location', '$timeout', '$window', 'authFactory'];
function loginController($cookies, $log, $scope, $rootScope, $q, $location, $timeout, $window, authFactory) {
  // 你的控制器逻辑
}

把这两个地方修改完之后,再重新运行代码,应该就能成功注入authFactory了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:51:05