Angular中如何在*ngIf指令里用变量替换字符串常量
解决方案
你只需要直接在*ngIf的表达式里引用question.childhidevalue即可,不需要额外的括号或插值语法,正确代码如下:
<div *ngIf="form.value[question.key] === question.childhidevalue">
为什么之前的写法无效
[question.childhidevalue]是Angular的属性绑定语法,*ngIf的表达式不需要这种语法,加了反而会被当成绑定指令,导致逻辑错误。['question.childhidevalue']是把整个字符串作为比较值,并非引用question对象的childhidevalue属性,自然无法匹配目标值。{{question.childhidevalue}}是插值语法,会把变量转成字符串插入模板,但*ngIf的表达式是在Angular上下文里执行的,插值语法在这里不适用,会导致表达式解析错误。
内容的提问来源于stack exchange,提问作者MisterniceGuy
相关产品推荐
相关产品推荐

