微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

防止AngularJs使用jQuery库

问题:如何防止AngularJs使用jQuery?

背景:

我正在AngularJs中开发一个可以“插入”现有客户端网站的独立应用程序.

这些客户端网站可能已经使用了jQuery.

如果你已经使用过AngularJs,你可能已经知道它使用了jqLit​​e(jQuery的一个子集).但是如果在Angular应用程序初始化之前加载了jQuery库,那么Angular将使用它.无法保证客户端会在之后加载它.

使用jQuery而不是jqLit​​e库导致了其他问题,我根本不需要jQuery.

有没有办法阻止AngularJs使用它并坚持使用jqLit​​e?

谢谢

编辑1:

让角度包括和使用jQuery时我遇到的问题是:

>“GET http://localhost.dev/angular/js/jquery-1.10.2.js?_=1401232704848 404(未找到)”
>“未捕获的SyntaxError:意外的令牌<” (jQuery v2.1.1文件中的错误,第330行)
我正在使用jQuery-2.1.1进行测试,所以甚至不确定它为什么要寻找版本1.10.2

编辑2:

我正在使用一种方法,最好不需要修改核心AngularJs文件.

解决方法

更新:
从v1.4.0-beta.6开始,Angular现在内置支持选择不使用jQuery(或者如果加载了多个版本则使用特定版本): ngJq

不幸的是,没有内置的方法来禁用jQuery(虽然它听起来像一个非常合理的功能).

两个远非理想的解决方案是:

1.)Tyler修改Angular源的解决方案.

2.)因为angular使用window.jQuery来寻找…你猜对了… jQuery(假设你可以控制在angular.js之前和之后运行什么脚本),你可以暂时从Angular“隐藏”jQuery:

/* Run before angular.js */
if (window.jQuery) {
    window.hideJQuery = window.jQuery;
    window.jQuery = false;
}

// <script src="angular.js"></script>

if (window.hideJQuery) {
    window.jQuery = window.hideJQuery;
    window.hideJQuery = undefined;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐