AngularJS:内置JQLite能否兼容JQuery UI?
能不能用AngularJS内置的JQLite配合jQuery UI?
答案很明确:不行,你必须先引入完整的jQuery,才能在AngularJS项目里使用jQuery UI。
咱们来理清楚其中的逻辑:
- 首先,JQLite只是AngularJS内置的轻量级DOM工具库,它只实现了jQuery最核心的一小部分功能(比如基础DOM选择、简单事件绑定、基础元素操作),但jQuery UI依赖的很多高级API(比如
$.fn插件扩展机制、$.widget方法、复杂选择器支持等),JQLite完全没有提供。 - 其次,jQuery UI本质是基于完整jQuery构建的插件集合,它的所有组件和方法都依赖完整的jQuery环境才能运行。如果直接用JQLite搭配jQuery UI,你会遇到一堆类似
$.widget is not a function的报错——因为JQLite根本不支持这些必要的方法。
正确的使用步骤是按以下顺序引入脚本:
- 先引入完整的jQuery文件
- 再引入AngularJS文件
- 最后引入jQuery UI文件
当AngularJS检测到页面已加载完整jQuery时,会自动把angular.element替换成jQuery对象(而非默认的JQLite)。这时候你在AngularJS里使用angular.element,就和直接用$效果一致,jQuery UI也能正常工作了。
内容的提问来源于stack exchange,提问作者Kellen Stuart




