为了让 angular.element 指向 jQuery 而不是 jQLite,需要在页面头部先加载 jQuery,再加载 Angular。
但是,出于性能原因(尤其是在移动设备上),如果可以在加载 AngularJS 后加载 jQuery,那就太好了。 jQuery 库相对较大,因此让“首屏内容”依赖于 jQuery lite,并让 jQuery 在 Angular 之后异步加载,可以提高性能。
我认为如果 Angular 公开它的 bindJquery 函数和 JQLitePrototype 对象,这是可能的。
有人知道如何在不触及 Angular 核心的情况下做到这一点吗?
最佳答案
您可以在加载 jQuery 后手动扩展 JQLite 原型(prototype):
angular.extend(angular.element.prototype, jQuery.fn);
但是,由于这不是 jQuery 与 Angular 的设计用法,因此可能会带来不必要的问题。但如果您的唯一目的是使用一些有用的 jQuery 方法扩展 angular.element,那么这应该没问题。
查看下面的演示,了解 jQuery 的方法如何在 angular.element
中使用,即使 jQuery 是在 Angular 之后加载的。
演示:http://plnkr.co/edit/fo70VtmgBCQDU9RWGGVF?p=preview
关于jquery - 在 AngularJS 之后加载 jQuery(而不是之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777108/