在Angular中更改元素的内容时遇到问题。我正在打井字游戏,我将玩家做的每一个动作都放在标题上,但是我想在玩家获胜时在该位置进行渲染。这是代码:
<div *ngIf="_state$ | async">
<p>
Turn of {{ (_state$ | async).turn == 'PLAYERX' ? "Player 1 - Xs" : "Player 2 - 0s" }}
</p>
<p>
There is a winner {{ (_state$ | async).winner == 'X' ? "Player 1 - Xs" : "Player 2 - 0s" }}
</p>
</div>
我该怎么做。仅显示一次,如果玩家赢了则显示第二个
,并且该玩家正在玩,而没有赢第一个,则两者都不显示。我只能显示第一个。
答案 0 :(得分:2)
我猜(_state$ | async).winner
仅在您有赢家时定义。在这种情况下,您可以将其用作显示第二个p并隐藏第一个p的条件。
<div *ngIf="_state$ | async as state">
<p *ngIf="!state.winner">
Turn of {{ state.turn == 'PLAYERX' ? "Player 1 - Xs" : "Player 2 - 0s" }}
</p>
<p *ngIf="state.winner">
There is a winner {{ state.winner == 'X' ? "Player 1 - Xs" : "Player 2 - 0s" }}
</p>
</div>
如果(_state$ | async).winner
始终被定义,但是在没有赢家的情况下具有不同的值,那么您必须更改条件以反映这一点。