Динамическое имя classа внутри ngClass в угловом 2
Мне нужно интерполировать значение внутри выражения ngClass
но я не могу заставить его работать.
Я пробовал эти решения, которые являются единственными, что имеет смысл для меня, эти два неудачных с интерполяцией:
Это работает с интерполяцией, но не с динамически добавленным classом, потому что вся строка добавляется как class:
- Как получить абсолютный путь к текущей странице в Angular 2?
- Как определить изменение маршрута в Угловом?
- Запрос Firebase, если дочерний элемент дочернего элемента содержит значение
- Угловое 2: получение RouteParams из родительского компонента
- Угловая 2: маршрутизация без изменения URL-адреса
Итак, мой вопрос: как вы используете динамические ngClass
в ngClass
?
- Angularjs2 - предварительная конфигурация сервера перед запуском приложения
- Angular2: 2 услуги в зависимости друг от друга
- Угловое 2 - Что эквивалентно корневой области?
- Может ли ng-контент использоваться внутри ngFor?
- Настройка переменных динамической области в AngularJs - область.
- Как вручную использовать ленивый модуль?
- ng2 - Разница между тегами ng-container и ng-template
- Как вернуться на предыдущую страницу
Пытаться
вместо.
или
или даже
будет работать, но дополнительная польза от использования ngClass заключается в том, что он не перезаписывает другие classы , которые добавляются каким-либо другим способом (например: директива [class.xyz]
или атрибут class
и т. д.), как это делает class
.
ngClass принимает три типа ввода
- Объект: каждый ключ соответствует имени classа CSS, вы не можете иметь динамические клавиши, потому что
key
'key'
"key"
все одинаковый, а[key]
не поддерживается AFAIK. - Массив: может содержать только список classов, никаких условий, хотя троичный оператор работает
- Строка / выражение: как обычный атрибут classа
Это должно работать
но Angular выбрасывает этот синтаксис. Я считаю это ошибкой. См. Также https://stackoverflow.com/a/36024066/217408
Другие недействительны. Вы не можете использовать []
вместе с {{}}
. Либо один, либо другой. {{}}
связывает полученный результат, который не приводит к желаемому результату в этом случае, потому что объект должен быть передан в ngClass
.
Пример Plunker
В качестве обходного пути синтаксис, показанный @A_Sing или
может быть использован.