使用AngularJS而不使用jQuery,angular.element和$都定义了,但不相等,那么“$”是什么?

Using AngularJS without jQuery, angular.element and $ are both defined, but not equal, so what is "$"?

如果我们加载 jQuery,然后加载 Angular.js,那么 angular.element === $ 为真,一切都非常清楚。

在这种情况下,

angular.element("<ul>")$("<ul>") 都创建了一个 ul 元素。

但是,如果我们不首先加载 jQuery,现在,angular.element("<ul>") 就像 jQuery 一样工作:它创建一个 ul 元素,并且 $ 已定义,但 $("<ul>") 不会创建 ul 元素,但会引发错误。那么 angular.element 就是 jqLit​​e 吗?在这种情况下,$ 是什么?

Angular 没有定义 $,但我假设您看到的是已定义的,因为您使用的是浏览器的开发工具(尤其是在 Chrome 中)。在 Chrome 中,$ 默认定义为 document.querySelector() 的别名,而 $$document.querySelectorAll() 的别名。如果 jQuery 加载到页面 $ 未由 Chrome 定义,而是推迟到 jQuery.

在Angular中,angular.element()默认为jqLit​​e,但如果jQuery位于angular之前,它再次遵从jQuery。