You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular:如何结合新@if语法使用模板变量

Angular新@if语法替代旧*ngIf的实现方式

旧的*ngIf写法(带变量赋值和可选链):

<ng-container *ngIf="contractSignal().object1?.object2 as templateVariable">
    {{ templateVariable }}
</ng-container>

用新的@if语法可以直接这样改写,逻辑完全一致:

@if (contractSignal().object1?.object2 as templateVariable) {
    {{ templateVariable }}
}

说明

  • @if语法支持在条件表达式后通过as直接将表达式结果赋值给模板变量,和旧*ngIf的变量绑定逻辑相同
  • 同样支持可选链操作符?.,当contractSignal().object1不存在时,表达式结果为null/undefined,不会进入代码块
  • @if本身是结构指令,不需要额外包裹<ng-container>,直接使用即可(如果需要组合其他结构指令,也可以和<ng-container>配合)

内容的提问来源于stack exchange,提问作者Sachin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:49:50