Улучшить эту документацию Просмотреть исходный код angular.element
- функция в модуле ng
Обзор
Оборачивает элемент DOM или строку HTML как элемент jQuery.
Если jQuery доступен, angular.element является псевдонимом для функции jQuery. Если jQuery недоступен, angular.element делегирует встроенному подмножеству jQuery, называемому "jQuery lite" или jqLite.
jqLite — это крошечное подмножество jQuery, совместимое с API, которое позволяет AngularJS манипулировать DOM в кроссбраузерном режиме. jqLite реализует только наиболее часто используемые функции с целью минимального использования памяти.
Чтобы использовать jQuery, просто убедитесь, что он загружен перед файлом angular.js. Вы также можете использовать директиву ngJq, чтобы указать, что следует использовать jqlite вместо jQuery, или использовать определённую версию jQuery, если на странице присутствует несколько версий.
angular.element(document).find(...) или $document.find(), или используйте стандартные API DOM, например document.querySelectorAll().jqLite AngularJS
jqLite предоставляет только следующие методы jQuery:
-
addClass()- Не поддерживает функцию в качестве первого аргумента after()-
append()- В отличие от jQuery, это не клонирует элементы, поэтому не будет работать правильно, когда вызывается на объекте jqLite, содержащем более одного узла DOM -
attr()- Не поддерживает функции в качестве параметров -
bind()(устарело, используйтеon()) - Не поддерживает пространства имён, селекторы или eventData -
children()- Не поддерживает селекторы clone()contents()-
css()- Получает только встроенные стили, не вызываетgetComputedStyle(). В качестве установщика не преобразует числа в строки или добавляет 'px', а также не имеет автоматического добавления префиксов свойств. data()detach()empty()eq()-
find()- Ограничен поиском по имени тега hasClass()html()-
next()- Не поддерживает селекторы -
on()- Не поддерживает пространства имён, селекторы или eventData -
off()- Не поддерживает пространства имён, селекторы или объект события в качестве параметра -
one()- Не поддерживает пространства имён или селекторы -
parent()- Не поддерживает селекторы prepend()prop()-
ready()(устарело, используйтеangular.element(callback)вместоangular.element(document).ready(callback)) remove()-
removeAttr()- Не поддерживает несколько атрибутов -
removeClass()- Не поддерживает функцию в качестве первого аргумента removeData()replaceWith()text()-
toggleClass()- Не поддерживает функцию в качестве первого аргумента -
triggerHandler()- Передаёт фиктивный объект события обработчикам -
unbind()(устарело, используйтеoff()) - Не поддерживает пространства имён или объект события в качестве параметра val()wrap()
Дополнения jQuery/jqLite
AngularJS также предоставляет следующие дополнительные методы и события для jQuery и jqLite:
События
-
$destroy- AngularJS перехватывает все API уничтожения DOM jqLite/jQuery и вызывает это событие на всех узлах DOM, которые удаляются. Это можно использовать для очистки любых внешних привязок к элементу DOM перед его удалением.
Методы
-
controller(name)- извлекает контроллер текущего элемента или его родительского элемента. По умолчанию извлекает контроллер, связанный с директивойngController. Еслиnameпредоставлен как имя директивы в camelCase, то будет извлечён контроллер для этой директивы (например,'ngModel'). -
injector()- извлекает инжектор текущего элемента или его родительского элемента. -
scope()- извлекает scope текущего элемента или его родительского элемента. Требует, чтобы Данные отладки были включены. -
isolateScope()- извлекает изолированный scope, если он прикреплён непосредственно к текущему элементу. Этот метод следует использовать только для элементов, содержащих директиву, которая начинает новый изолированный scope. Вызовscope()для этого элемента всегда возвращает исходный, не изолированный scope. Требует, чтобы Данные отладки были включены. -
inheritedData()- аналогичноdata(), но проходит вверх по DOM, пока значение не будет найдено или не будет достигнут родительский элемент.
Известные проблемы
Нельзя использовать шпионаж за angular.element при использовании Jasmine версии 1.x. Дополнительная информация доступна на https://github.com/angular/angular.js/issues/14251.
Использование
angular.element(element);
Аргументы
| Параметр | Тип | Подробности |
|---|---|---|
| element | stringDOMElement | Строка HTML или DOMElement, которые нужно обернуть в jQuery. |
Возвращаемое значение
Object |
Объект jQuery. |
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ng/function/angular.element