Spec-Zone.ru › Angular.js 1.3

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

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

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

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

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

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

Анимации

enter — происходит сразу после изменения содержимого ngIf и создания нового DOM-элемента, вставленного в контейнер ngIf. leave — происходит непосредственно перед удалением содержимого ngIf из DOM.

Нажмите здесь, чтобы узнать больше о шагах, участвующих в анимации.

Аргументы

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

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

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

Spec-Zone.ru

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