使用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
就是 jqLite 吗?在这种情况下,$
是什么?
Angular 没有定义 $
,但我假设您看到的是已定义的,因为您使用的是浏览器的开发工具(尤其是在 Chrome 中)。在 Chrome 中,$
默认定义为 document.querySelector()
的别名,而 $$
是 document.querySelectorAll()
的别名。如果 jQuery 加载到页面 $
未由 Chrome 定义,而是推迟到 jQuery.
在Angular中,angular.element()
默认为jqLite,但如果jQuery位于angular之前,它再次遵从jQuery。
如果我们加载 jQuery,然后加载 Angular.js,那么 angular.element === $
为真,一切都非常清楚。
angular.element("<ul>")
和 $("<ul>")
都创建了一个 ul
元素。
但是,如果我们不首先加载 jQuery,现在,angular.element("<ul>")
就像 jQuery 一样工作:它创建一个 ul
元素,并且 $
已定义,但 $("<ul>")
不会创建 ul
元素,但会引发错误。那么 angular.element
就是 jqLite 吗?在这种情况下,$
是什么?
Angular 没有定义 $
,但我假设您看到的是已定义的,因为您使用的是浏览器的开发工具(尤其是在 Chrome 中)。在 Chrome 中,$
默认定义为 document.querySelector()
的别名,而 $$
是 document.querySelectorAll()
的别名。如果 jQuery 加载到页面 $
未由 Chrome 定义,而是推迟到 jQuery.
在Angular中,angular.element()
默认为jqLite,但如果jQuery位于angular之前,它再次遵从jQuery。