Ответ 1
Вы можете добавить класс css на основании условия в самой директиве NgClass
:
[ngClass]="{ 'active': myString == ThisIsActiveString }";
Подробнее о директиве NgClass
вы можете узнать и найти примеры здесь.
У меня есть три кнопки в представлении и на загрузке страницы. Я показываю первый контент кнопок. После нажатия кнопки кнопка становится активной, но при загрузке страницы начальная кнопка не установлена в активную. Чтобы показать первую активную кнопку, я добавил ее в div:
[ngClass]="'active'"
Проблема с этим теперь, когда нажата другая кнопка, первая кнопка удерживает активный класс. Я оцениваю данные, показываемые на основе строки. При нажатии каждой кнопки меняется строка.
Как добавить условие для проверки текущей строки? Итак, если строка соответствует текущим отображаемым данным, добавьте активный класс к этой кнопке?
Итак, что-то вроде этого - то, что я ищу:
[ngClass]="'active'" if "myString == ThisIsActiveString;
Это моя текущая кнопка, но класс не добавляется, когда я добавляю ее в этот синтаксис:
<button [class.active]="shown == EQUIFAX" (click)="shown = 'EQUIFAX'" type="button" id="equifax" class="btn btn-secondary">Equifax Report </button>
Чтобы очистить строку, по умолчанию используется значение "EQUIFAX" при загрузке страницы.
Это основано на ответе:
<button [ngClass]="'active' : shown == 'EQUIFAX'" (click)="shown = 'EQUIFAX'" type="button" id="equifax" class="btn btn-secondary">Equifax Report </button>
Вы можете добавить класс css на основании условия в самой директиве NgClass
:
[ngClass]="{ 'active': myString == ThisIsActiveString }";
Подробнее о директиве NgClass
вы можете узнать и найти примеры здесь.
Обозначение эквивалентности [class.active]="shown == EQUIFAX"
сравнивается с переменной с именем EQUIFAX
.
Вместо этого вы должны изменить эквивалентность для сравнения со строкой [class.active]="shown == 'EQUIFAX'"
Используя [ngClass], вы получите [ngClass]="{'active': shown == 'EQUIFAX'}
Здесь игровая площадка с этим реализована: http://plnkr.co/edit/j2w8aiQPghl0bPZznoF2?p=preview
вы можете сделать это:
[class.nameForYourClss]="myString == ThisIsActiveString ";
Например, если вы хотите добавить много классов и иметь два или более условий, каждый класс и условие можно добавить после запятой ,
.
Например,
[ngClass]="{'first-class': condition,
'second-class': !condition}"
В HTML:
<div [style.color]="navColor"></div>
В TS:
Объявление:
navColor: "white";
Изменение в зависимости от условия:
this.navColor = "black";