*ngIf变量赋值异常:赋值生成的变量无法在HTML页面正常渲染
你遇到的问题源于对*ngIf变量声明语法的误用:Angular *ngIf 结构指令中,let 关键字默认绑定的是指令上下文的 $implicit 变量,该变量的取值为条件表达式的布尔计算结果,而非条件表达式的原始返回值。
你可以通过以下两种方式调整代码:
- 如果需要直接获取条件表达式的原始值复用,使用
as语法替代let声明,修改后的示例代码如下:
<div *ngIf="'hello world' as testVariable">{{testVariable}}</div>
修改后页面会正常渲染hello world字符串。
- 如果仅需要获取条件是否命中的布尔状态,可以保留
let声明,此时变量值为true/false:
<div *ngIf="'hello world'; let isShow">{{isShow}}</div> <!-- 页面将渲染 true -->
补充说明:你写的第二条无变量赋值的*ngIf语句符合语法规则,只要
document.story_summary为真值就会正常渲染对应内容,不存在语法问题。
内容的提问来源于stack exchange,提问作者superninja
相关产品推荐
相关产品推荐

