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

AngularJS集成AdalAngular遇[$injector:modulerr]错误,模块注入失败求助

解决AngularJS中AdalAngular模块注入失败的[$injector:modulerr]错误

我来帮你排查这个AdalAngular注入失败的问题,[$injector:modulerr]通常是模块找不到或者依赖配置出问题,结合你的代码和描述,给你几个针对性的排查和解决方向:

1. 先确认Adal相关脚本的加载顺序与正确性

这是最容易踩坑的点之一,哪怕index.html加载正常,单个脚本的路径或顺序错了都会导致模块找不到:

  • 加载顺序必须正确:要确保在AngularJS核心脚本之后,再加载Adal的两个脚本,最后加载你的应用脚本,比如:
    <script src="angular.min.js"></script>
    <script src="angular-route.min.js"></script>
    <script src="adal.min.js"></script>
    <script src="adal-angular.min.js"></script>
    <script src="你的应用脚本文件.js"></script>
    
  • 检查脚本路径:打开浏览器控制台的「Network」标签,刷新页面,看adal.js和adal-angular.js是否返回200状态码,如果是404,说明路径写错了,调整路径即可。

2. 修正config函数的依赖注入参数不匹配问题

看你提供的代码,这里有个明显的参数不匹配错误,直接会导致注入失败:
你的config依赖数组是['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider'],但后面的函数参数却写了function($routeProvider, $httpProvider, adalProvider, $locationProvider)——依赖数组里没有$locationProvider,但函数里多了这个参数,AngularJS会严格按照依赖数组的顺序注入,这就会导致第四个参数找不到对应依赖,触发注入错误。

修正后的代码示例:

var app = angular.module("myApp", [ 'ngRoute', 'AdalAngular' ]); 

app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', '$locationProvider', 
  function($routeProvider, $httpProvider, adalProvider, $locationProvider) { 
    $routeProvider.when('/', { 
      controller : "loginController", 
      templateUrl : "login.html" 
    });

    // 别忘了添加Adal的核心配置(这步很多人会忘,后续验证登录也需要)
    adalProvider.init({
      tenant: '你的Azure AD租户ID',
      clientId: '你的应用注册客户端ID',
      // 可选:配置需要保护的路由或API
      // endpoints: {
      //   "https://your-api-url.com/": "api-client-id"
      // }
    }, $httpProvider);
  }
]);

如果你的代码里并没有用到$locationProvider,也可以直接把函数里的这个参数删掉,同时保持依赖数组和函数参数的数量、顺序一致。

3. 检查AngularJS与AdalAngular的版本兼容性

AdalAngular对AngularJS的版本有要求,建议使用AngularJS 1.5.x~1.6.x的稳定版本,同时确保adal.js和adal-angular.js的版本一致,避免因版本不兼容导致模块无法识别。

4. 验证模块注册是否正确

确保你的应用模块确实正确引入了AdalAngular,也就是angular.module("myApp", [ 'ngRoute', 'AdalAngular' ])这行没有拼写错误,注意大小写——AdalAngular的模块名称是区分大小写的,别写成adalAngular或者其他拼写。

先按上面的顺序排查,优先解决脚本加载和依赖参数不匹配的问题,这两个是导致你当前错误的最可能原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:44:35