* ngSwitchCase仅渲染* ngDefault

时间:2019-04-26 16:09:49

标签: angular typescript

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

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仅呈现默认选项,而忽略值为“ emoji”的条件。

如果我在html中输入{{escolha_layout_avaliacao}},则其值为“ emoji”,但*ngSwitchCase仅呈现默认情况。

1 个答案:

答案 0 :(得分:4)

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

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