Улучшить эту документацию Просмотреть исходный код ngClass
- директива в модуле ng
Обзор
Директива ngClass позволяет динамически устанавливать CSS-классы на HTML-элементе, привязывая выражение, представляющее все добавляемые классы.
Директива работает тремя различными способами, в зависимости от типа, к которому относится вычисленное выражение:
-
Если выражение вычисляется в строку, строка должна содержать один или несколько имен классов, разделенных пробелами.
-
Если выражение вычисляется в объект, то для каждой пары "ключ-значение" в объекте с истинным значением соответствующий ключ используется в качестве имени класса.
-
Если выражение вычисляется в массив, каждый элемент массива должен быть либо строкой, как в типе 1, либо объектом, как в типе 2. Это означает, что вы можете смешивать строки и объекты в массиве, чтобы получить больший контроль над отображаемыми CSS-классами. Пример такого использования приведен ниже в коде.
Директива не добавляет дублирующиеся классы, если определённый класс уже существует.
При изменении выражения ранее добавленные классы удаляются, а затем добавляются новые.
Известные проблемы
Не следует использовать интерполяцию в значении атрибута class, при использовании директивы ngClass на том же элементе. Подробности см. здесь.
Информация о директиве
- Эта директива выполняется на уровне приоритета 0.
Использование
- в качестве атрибута:
<ANY ng-class="expression"> ... </ANY>
- в качестве CSS-класса:
<ANY class="ng-class: expression;"> ... </ANY>
Аргументы
| Параметр | Тип | Подробности |
|---|---|---|
| ngClass | expression | Выражение для вычисления. Результатом вычисления может быть строка, представляющая имена классов, разделённые пробелами, массив или карта имён классов с логическими значениями. В случае карты имена свойств, значения которых истинны, будут добавлены в качестве CSS-классов к элементу. |
Анимации
| Анимация | Происходит |
|---|---|
| addClass | непосредственно перед применением класса к элементу |
| removeClass | непосредственно перед удалением класса с элемента |
| setClass | непосредственно перед добавлением и удалением классов с элемента одновременно |
ngClass и существующие CSS3 переходы/анимации
Директива ngClass по-прежнему поддерживает CSS3 переходы/анимации, даже если они не следуют структуре именования CSS ngAnimate. При анимации ngAnimate добавит дополнительные CSS-классы для отслеживания начала и окончания анимации, но это не помешает уже существующим CSS-переходам на элементе. Чтобы понять, что происходит во время анимации на основе классов, обязательно ознакомьтесь с пошаговыми инструкциями в $animate.addClass и $animate.removeClass.
Нажмите здесь, чтобы узнать больше о этапах анимации.Примеры
Базовый
Анимации
Пример ниже демонстрирует, как выполнять анимации с помощью ngClass.
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ng/directive/ngClass