使用条件更改Angular中的元素文本

时间:2018-12-19 17:39:42

标签: html angular typescript

在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>

我该怎么做。仅显示一次,如果玩家赢了则显示第二个

,并且该玩家正在玩,而没有赢第一个,则两者都不显示。我只能显示第一个。

1 个答案:

答案 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始终被定义,但是在没有赢家的情况下具有不同的值,那么您必须更改条件以反映这一点。