在AngularJS之后加载jQuery(而不是之前)

为了让angular.element指向jQuery而不是jQLite,需要在页面头部的Angular之前加载jQuery。

但是,出于性能原因(特别是在移动设备上),如果可以在加载AngularJS之后加载jQuery,那就太好了。 jQuery库相对较大,因此让“高于内容”依赖于jQuery lite并让jQuery在Angular之后异步加载,可以提高性能。

我认为如果Angular公开它的bindJquery函数并且它是JQLitePrototype对象,那将是可能的。

任何想法如何在不触及Angular核心的情况下做到这一点?

您可以在加载jQuery后手动扩展JQLite原型:

angular.extend(angular.element.prototype, jQuery.fn); 

但是,由于这不是jQuery与Angular的设计用法,因此可能会带来不必要的问题。 但是如果您的唯一目的是使用一些有用的jQuery方法扩展angular.element,那么这应该没问题。

查看下面的演示,看看如何在angular.element中使用jQuery的方法,即使在Angular之后加载了jQuery。

演示: http : //plnkr.co/edit/fo70VtmgBCQDU9RWGGVF?p = preview