Spec-Zone.ru › Angular.js 1.7

Улучшить документацию Посмотреть исходный код 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 воссоздаёт элементы, используя их состояние компиляции. Пример такого поведения: если атрибут класса элемента непосредственно изменяется после компиляции, например, с помощью метода jQuery .addClass(), а затем элемент удаляется. Когда ngIf воссоздаёт элемент, добавленный класс будет утерян, поскольку для воссоздания элемента используется исходное состояние компиляции.

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

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

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

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

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

Аргументы

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

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

Анимации

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

Пример

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

Spec-Zone.ru

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