如何在Angular模板中声明变量?

Web*_*per 2 templates angular

这是源代码

<div>
{{ getActualData() }}
</div>
<div>
{{ getVirtualData() }}
</div>
<div>
 {{ getActualData() - getVirtualData() }}
</div>
Run Code Online (Sandbox Code Playgroud)

这就是我要的.

<div>
{{ actual = getActualData() }}
</div>
<div>
{{ virtual = getVirtualData() }}
</div>
<div>
{{ actual - virtual }}
</div>
Run Code Online (Sandbox Code Playgroud)

由于两个函数都很复杂,我想暂时保存数据并尽快计算差异.有没有办法做到这一点?

Saj*_*ran 8

您可以在模板中声明变量,使用let它来评估函数并获得结果,使用ngIf实际检查值是否存在并分配给变量

<div *ngIf="getActualData(); let actual" > 
<div *ngIf="getVirtualData(); let virtual" > 
 {{actual - virtual}}
</div>
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 如果函数返回布尔值怎么办?如果 bool 为 false,则根本不会显示 div。 (2认同)

Ric*_*rdo 6

你可以试试 :

    <div *ngIf="getActualData(); let actual">
      <div *ngIf="getVirtualData(); let virtual">
        {{ actual - virtual }}
      </div>
    </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是一个解决方法,但应该有效