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

时间:2016-02-25 11:46:09

标签: angularjs jqlite

如果我们加载jQuery然后加载Angular.js,则RCode为真,一切都很清楚。

在这种情况下,

angular.element === $angular.element("<ul>")都会创建$("<ul>")元素。

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

1 个答案:

答案 0 :(得分:4)

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

在Angular中,angular.element()默认是jqLit​​e,但是如果jQuery在angular之前被删除,那么它再次推迟到jQuery。