Spec-Zone.ru › Angular.js 1.2

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

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

Директива ngHide показывает или скрывает заданный HTML-элемент, в зависимости от выражения, переданного атрибуту ngHide. Элемент показывается или скрывается путём удаления или добавления CSS-класса ng-hide к элементу. Класс .ng-hide предопределён в AngularJS и устанавливает стиль отображения в none (используя флаг !important). Для режима CSP добавьте angular-csp.css в ваш HTML-файл (см. ngCsp).

<!-- when $scope.myValue is truthy (element is hidden) -->
<div ng-hide="myValue" class="ng-hide"></div>

<!-- when $scope.myValue is falsy (element is visible) -->
<div ng-hide="myValue"></div>

Когда выражение .ngHide принимает значение true, к атрибуту класса элемента добавляется CSS-класс .ng-hide, что приводит к его скрытию. При значении false CSS-класс .ng-hide удаляется из элемента, и он перестаёт быть скрытым.

Примечание: Вот список значений, которые ngHide будет считать ложными значениями (регистр не учитывается):
"f" / "0" / "false" / "no" / "n" / "[]"

Почему используется !important?

Возможно, вас интересует, почему для CSS-класса .ng-hide используется !important. Это потому, что селектор .ng-hide легко переопределить более сильными селекторами. Например, изменение стиля отображения элемента списка HTML может привести к появлению скрытых элементов. Эта проблема усугубляется при работе с CSS-фреймворками.

Использование !important гарантирует, что поведение отображения и скрытия будет работать как ожидается, несмотря на любые конфликты между специфичностью CSS-селекторов (когда !important не используется с конфликтующими стилями). Если разработчик решит переопределить стили, чтобы изменить способ скрытия элемента, то для этого достаточно использовать !important в своём CSS-коде.

Переопределение .ng-hide

По умолчанию класс .ng-hide будет стилизовать элемент со стилем display:none!important. Если вы хотите изменить поведение скрытия с ngShow/ngHide, это можно сделать, переопределив стили для класса .ng-hide в CSS:

.ng-hide {
//this is just another form of hiding an element
display:block!important;
position:absolute;
top:-9999px;
left:-9999px;
}

По умолчанию переопределять в CSS ничего не нужно, и анимации будут работать вокруг стиля отображения.

Примечание об анимациях с ngHide

Анимации в ngShow/ngHide работают с событиями отображения и скрытия, которые срабатывают, когда выражение директивы принимает значение true и false. Эта система работает подобно системе анимации в ngClass, за исключением того, что для вас добавляется и удаляется CSS-класс .ng-hide, а не ваш собственный CSS-класс.

//
//a working example can be found at the bottom of this page
//
.my-element.ng-hide-add, .my-element.ng-hide-remove {
  transition:0.5s linear all;
}

.my-element.ng-hide-add { ... }
.my-element.ng-hide-add.ng-hide-add-active { ... }
.my-element.ng-hide-remove { ... }
.my-element.ng-hide-remove.ng-hide-remove-active { ... }

Обратите внимание, что начиная с версии AngularJS 1.2.17 (и 1.3.0-beta.11), нет необходимости изменять свойство display на block во время анимационных состояний — ngAnimate будет автоматически управлять переключением стилей.

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

  • Эта директива выполняется на уровне приоритета 0.

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

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

Анимации

removeClass: .ng-hide - происходит после того, как выражение ngHide принимает истинное значение и перед тем, как содержимое станет скрытым addClass: .ng-hide - происходит после того, как выражение ngHide принимает ложное значение и перед тем, как содержимое станет видимым

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

Аргументы

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

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

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

Spec-Zone.ru

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