首页 > 解决方案 > *ngSwitchCase 仅呈现 *ngDefault

问题描述

我有两个必须由表达式呈现的组件:

HTML:

<div *ngFor="let avaliacao of avaliacoes" [ngSwitch]="escolha_layout_avaliacao">
      <app-avaliacao-produto-modelo-emoji *ngSwitchCase="emoji" [avaliacao]="avaliacao"></app-avaliacao-produto-modelo-emoji>
      <app-avaliacao-produto *ngSwitchDefault [avaliacao]="avaliacao"></app-avaliacao-produto>
</div>

TS:

escolha_layout_avaliacao: string

ngOnInit() {
  this.buscaDadosLayout()
}

buscaDadosLayout(){
  this.escolha_layout_avaliacao = "emoji"
}

但这*ngSwitch只是呈现默认选项,忽略具有值“表情符号”的条件。

如果我输入我的html:{{escolha_layout_avaliacao}}我有值“emoji”,但*ngSwitchCase唯一呈现默认情况。

标签: angulartypescript

解决方案


您提供给 *ngSwitchCase 的参数将在您的组件范围内进行评估。因此,如果您传递 emoji,它将与您的情况下不存在的 emoji 变量的值进行比较。

尝试使用字符串文字:*ngSwitchCase="'emoji'"


推荐阅读