我有两个必须由表达式呈现的组件:
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
仅呈现默认情况。
答案 0 :(得分:4)
您提供给* ngSwitchCase的参数将在您的组件范围内进行评估。因此,如果您传递表情符号,它将与您的案例中不存在的表情符号变量的值进行比较。
尝试使用字符串文字:* ngSwitchCase =“'emoji'”