Попытка добавить ngClass в div после 5 нажатий кнопок.
Вот кнопка, расположенная в файле app.component.html:
<button class = "btn btn-primary" (click) = "onToggleDetails()">Display Details</button>
<p *ngIf = "showSecret">Secret Password = tuna</p>
<div *ngFor = "let logItem of log"
[ngStyle] = "{backgroundColor: logItem >= 5 ? 'blue' : 'transparent'}"
[ngClass] = "{'white-text': logItem >= 5}"
>{{ logItem }}</div>
Вот файл app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'], *** EDIT ***
styles: [`
h3 {
color: dodgerblue;
}
`]
})
export class AppComponent {
username1 = '';
showSecret = false;
log = [];
onToggleDetails(){
this.showSecret = !this.showSecret;
this.log.push(this.log.length + 1);
}
}
Вот app.component.css
.white-text{
color: white;
}
В настоящее время фон logItem остается синим после нажатия 5-й кнопки. Я могу осмотреть консоль и увидеть, что класс .white-text добавлен, но текст остается черным.
Вот как это выглядит:
Когда я осматриваю элемент, вы видите, что класс добавлен:
Я новичок в Angular, прохожу курс udemy и застрял здесь. Я не могу перейти к следующей части, пока не исправлю это.
Вместо этого проверьте индекс logItem
Перед этим проверьте жестко запрограммированное значение, например 5===5.





Измените определение компонента, как показано ниже, чтобы включить файл CSS.
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.cs']
})
Хороший улов, но без изменений. Текст по-прежнему черный. Есть предположения?
Мое плохое (недосмотр), у вас не может быть одновременно стилей и styleUrls. Таким образом, вам придется переместить часть стилей в файл css. Отредактировал и свой ответ.
Я думаю, это помогло. Я закомментировал styleUrls и добавил к стилям класс .white-text, и теперь все работает. Спасибо за ваш вклад.
На самом деле я могу удалить стили и просто использовать styleUrls, и все работает нормально.
Выберите элемент в инспекторе и проверьте его стили, чтобы увидеть, не переопределяет ли другой селектор CSS цвет, установленный в
.white-text.