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

升级angular-chosen至1.9.3后触发[$injector:modulerr]错误求助

解决Angular-Chosen 1.9.3与jQuery 3.5.1的$injector:modulerr错误

这种依赖版本兼容问题确实头疼——尤其是当你被限制不能降级核心库(比如这里的jQuery 3.5.1)的时候。从你描述的错误和堆栈指向jQuery来看,大概率是Angular-Chosen 1.9.3的代码里用到了jQuery 3.x系列中已经废弃或行为变更的API,导致AngularJS的注入器初始化失败。

下面是我整理的几个可行的排查和修复步骤,按优先级排序:

1. 确认脚本加载顺序的正确性

AngularJS会优先使用自己内置的jqLite,只有当jQuery在AngularJS之前加载时,才会切换到完整的jQuery环境。虽然你之前的版本运行正常,但升级Angular-Chosen后可能对加载顺序的敏感度更高:

  • 确保加载顺序是:jquery-3.5.1.js → angularjs.1.8.x.js → jquery-chosen.1.8.7.js → angular-chosen.1.9.3.js
  • 检查是否有异步加载的脚本(带async或defer属性)打乱了这个顺序,导致脚本加载顺序不可控

2. 手动修复Angular-Chosen 1.9.3中的jQuery兼容问题

既然谷歌没找到现成的补丁,我们可以直接查看Angular-Chosen 1.9.3的源码,定位到和jQuery 3.5.1冲突的地方:

  • 常见的jQuery 3.x不兼容点:废弃的bind()/unbind()/live()/die()方法,需要替换成on()/off();$.trim()被移到String.prototype.trim();或者某些选择器的行为变更
  • 举个例子,如果Angular-Chosen里有类似这样的代码:
    element.bind('change', function() { ... });
    
    替换成兼容jQuery 3.x的写法:
    element.on('change', function() { ... });
    
  • 另外,检查是否有调用$.browser这类在jQuery 3.x中被完全移除的API,如果有,需要用特性检测等方式替代

3. 调整Angular-Chosen的初始化配置

有时候新版本的插件会修改配置项的结构,导致AngularJS注入时解析出错:

  • 检查你项目中使用chosen指令的地方,是否传递了新版本不再支持的配置参数
  • 尝试简化配置,先使用默认配置运行,确认是否是配置项导致的注入错误
  • 比如,如果你之前有带配置的用法:
    <select chosen="{disable_search_threshold: 10}">...</select>
    
    可以先改成无配置的基础用法,看错误是否消失:
    <select chosen>...</select>
    

4. 排查其他依赖的冲突

虽然错误堆栈指向jQuery,但也有可能是其他插件和新版本Angular-Chosen的交互问题:

  • 暂时移除其他非核心的AngularJS插件,逐个重新引入,定位是否有冲突的插件
  • 检查是否有自定义的AngularJS指令或服务修改了jQuery的原型方法,导致Angular-Chosen调用时出错

如果以上步骤都没解决问题,你可以尝试在AngularJS的config阶段添加调试日志,获取更详细的错误上下文:

angular.module('yourApp', ['chosen'])
  .config(function($provide) {
    $provide.decorator('$exceptionHandler', function($delegate) {
      return function(exception, cause) {
        console.error('Exception Details:', exception);
        console.error('Error Cause:', cause);
        $delegate(exception, cause);
      };
    });
  });

这能帮你进一步缩小问题范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:52:49