Spec-Zone.ru › Angular.js 1.8

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

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

Обзор

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

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

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

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

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

Сведения о директиве

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

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

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

Аргументы

Параметр Тип Подробности
ngIf expression

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

Анимации

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

Пример

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

Spec-Zone.ru

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