为了让angular.element指向jQuery而不是jQLite,需要在页面头部的Angular之前加载jQuery。
但是,出于性能原因(特别是在移动设备上),如果可以在加载AngularJS之后加载jQuery,那就太好了。 jQuery库相对较大,因此让“高于内容”依赖于jQuery lite并让jQuery在Angular之后异步加载,可以提高性能。
我认为如果Angular公开它的bindJquery函数并且它是JQLitePrototype对象,那将是可能的。
任何想法如何在不触及Angular核心的情况下做到这一点?
答案 0 :(得分:3)
您可以在加载jQuery后手动扩展JQLite原型:
angular.extend(angular.element.prototype, jQuery.fn);
但是,由于这不是jQuery与Angular的设计用法,因此可能会带来不必要的问题。但是,如果您的唯一目的是使用一些有用的jQuery方法扩展angular.element,那么这应该没问题。
检查下面的演示,看看jQuery的方法在angular.element
中是如何可用的,即使在Angular之后加载了jQuery。