【问题标题】:Using AngularJS without jQuery, angular.element and $ are both defined, but not equal, so what is "$"?使用 AngularJS 不使用 jQuery,angular.element 和 $ 都定义了,但不相等,那么“$”是什么?
【发布时间】:2016-02-25 11:46:09
【问题描述】:

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

angular.element("<ul>")$("<ul>") 在这种情况下都创建了一个 ul 元素。

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

【问题讨论】:

  • 是的,angular.element() 就是 jqLit​​e
  • $ 只是没有在 Angular 中定义,它是开发工具的一个实用程序,是 document.querySelector() 的别名,$$document.querySelectorAll() 的别名

标签: angularjs jqlite


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-04-30
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
相关资源
最近更新 更多