2016-02-25 2 views
1

Если мы загрузим jQuery, а затем Angular.js, тогда angular.element === $ будет правдой, и все будет совершенно ясно.

angular.element("<ul>") и $("<ul>") оба создают в этом случае элемент ul.

Однако, если мы не будем загружать JQuery первый, теперь, angular.element("<ul>") работает так же, как JQuery: он создает ul элемент, и $ определен, но $("<ul>") не создает в ul элемент, но бросить ошибку. Так что angular.element точно jqLite? А что такое $ в этом случае?

+0

Да, 'angular.element()' точно jqLite – atwright147

+0

'$' только не определен в Angular, это утилита инструментов dev, которая является псевдонимом 'document.querySelector()' и '$ $ 'является псевдонимом' document.querySelectorAll() ' – atwright147

ответ

3

Угловой не определяет $, но я предполагаю, что вы видите его как определено, потому что вы используете инструменты разработчика браузера (особенно в Chrome). В Chrome $ определяется по умолчанию как псевдоним document.querySelector(), а $$ - это псевдоним для document.querySelectorAll(). Если jQuery загружается на страницу $ не определяется Chrome и вместо этого переносится на jQuery.

В Angular angular.element() по умолчанию jqLite, но если jQuery отклоняется до углового значения, он снова переходит в jQuery.