Улучшить эту документацию Просмотреть исходный код angular.element
- функция в модуле ng
Обзор
Оборачивает элемент DOM или HTML-строку в виде элемента jQuery.
Если jQuery доступен, angular.element является псевдонимом для функции jQuery. Если jQuery недоступен, angular.element делегирует встроенному подмножеству jQuery в AngularJS, называемому "jQuery lite" или jqLite.
jqLite — это крошечное, совместимое с API подмножество jQuery, которое позволяет 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()-
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 текущего элемента или его родителя. Требуется, чтобы были включены данные отладки Debug Data. -
isolateScope()— извлекает изолированный scope, если он прикреплен непосредственно к текущему элементу. Этот getter следует использовать только для элементов, содержащих директиву, которая запускает новый изолированный scope. Вызовscope()для этого элемента всегда возвращает исходный, не изолированный scope. Требуется, чтобы были включены данные отладки Debug Data. -
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.6.9/docs/api/ng/function/angular.element