Я использую Angular 7.
Я получил этот HTML:
<section class="carddiv">
<section class="gameMessages">
<p [ngClass] ="{'messageMiddleOfGameNoPairs' : gameModeVar === GameMode.NONE_SELECTED || gameModeVar === GameMode.ONE_SELECTED,
'messageSuccess' : gameModeVar === GameMode.TWO_SELECTED_SUCCESS || gameModeVar === GameMode.GAME_OVER,
'messageFailure' : gameModeVar === GameMode.TWO_SELECTED_FAILURE}"> {{currentMoveMessage}} </p>
</section>
....
</section>
Внутри класса компонента:
enum GameMode
{
NONE_SELECTED = 0,
ONE_SELECTED = 1,
TWO_SELECTED_SUCCESS = 2,
TWO_SELECTED_FAILURE = 3,
GAME_OVER = 4
};
@Component({
selector: 'app-cardcomponent',
templateUrl: './cardcomponent.component.html',
styleUrls: ['./cardcomponent.component.css'],
})
export class CardcomponentComponent implements OnInit
{
currentMoveMessage: string;
gameModeVar : GameMode;
constructor(public cardService: CardService)
{
this.currentMoveMessage = "message";
this.gameModeVar = GameMode.NONE_SELECTED;
...
}
Когда я загружаю страницу, ничегоотображается из-за ngClass
.Если я использую числовые значения перечисления, то есть в HTML я изменяю сравнение gameModeVar на gameModeVar === 1
вместо gameModeVar === GameMode.ONE_SELECTED
(но для всех значений, а не только на 1), это работает.
1) Это способ, которым я объявляю enum внутри того же файла класса над @Component (он не может быть объявлен после него без ошибки компиляции), правильный способ сделать это, как это должно бытьдля этого компонента?
2) В чем проблема с ngClass
?