Spec-Zone.ru › Angular.js 1.6

Улучшить эту документацию Посмотреть исходный код ngIf

  1. Директива в модуле ng

Обзор

Директива ngIf удаляет или воссоздаёт часть дерева DOM, в зависимости от {выражения}. Если выражение, присвоенное ngIf, имеет ложное значение, то элемент удаляется из DOM, в противном случае создается копия элемента и вставляется в DOM.

ngIf отличается от ngShow и ngHide тем, что ngIf полностью удаляет и воссоздаёт элемент в DOM, вместо изменения его видимости через свойство display CSS. Типичный пример, где это различие существенно, — использование CSS-селекторов, которые зависят от расположения элемента в DOM, например, псевдоклассы :first-child или :last-child.

Обратите внимание, что при удалении элемента с помощью ngIf, его область видимости уничтожается, а при восстановлении создаётся новая область видимости. Область видимости, созданная внутри ngIf, наследует от родительской области видимости с помощью прототипического наследования. Важное следствие этого заключается в том, что если ngModel используется внутри ngIf для привязки к примитиву JavaScript, определённому в родительской области видимости, то любые изменения, внесённые в переменную внутри дочерней области видимости, перепишут (скрывают) значение в родительской области видимости.

Также ngIf воссоздаёт элементы с использованием их состояния компиляции. Примером такого поведения является ситуация, когда атрибут класса элемента непосредственно изменяется после его компиляции, например, с помощью метода .addClass() jQuery, а затем элемент удаляется. При воссоздании элемента ngIf добавленный класс будет потерян, потому что для регенерации элемента используется исходное состояние компиляции.

Кроме того, для анимации эффектов enter и leave можно использовать модуль ngAnimate.

Информация о директиве

  • Эта директива создаёт новую область видимости.
  • Эта директива выполняется на уровне приоритета 600.
  • Эта директива может использоваться как multiElement

Использование

  • в качестве атрибута:
    <ANY
      ng-if="expression">
    ...
    </ANY>

Аргументы

Параметр Тип Описание
ngIf expression

Если выражение ложное, то элемент удаляется из дерева DOM. Если выражение истинно, то добавляется копия скомпилированного элемента в дерево DOM.

Анимации

Анимация Происходит
enter непосредственно после изменения содержимого ngIf и создания нового DOM-элемента, который вставляется в контейнер ngIf
leave непосредственно перед удалением содержимого ngIf из DOM
Нажмите здесь, чтобы узнать больше об этапах, вовлеченных в анимацию.

Пример

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/directive/ngIf

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API