首页 > 解决方案 > Angular 模板范围变量

问题描述

Angular 中是否有像 ngFor 一样声明变量的功能?

我想减少相同值的调用和计算。对于getFormatString,我也可以使用下面的getValue() 方法。但我想优化性能。

我期待的是:

<ion-item [color]="value < 0 ? 'danger' : 'success'" *ngInit="let value = getValue()">
  <h3>Value</h3>
  <p item-end>{{ getFormatString(value) }}</p>
</ion-item>

实际上,我每次都必须设置相同的方法才能获得相同的值。我的想法是:获取一次值,并为子元素共享它。与 ngFor 一样,该变量可用于范围内的所有其他元素。

附加:没有创建新指令。也许将值包装在数组中以使用 ngFor?但这很丑陋。...我敢肯定这是可能的。我过去是这样做的。但我不知道怎么了。

标签: angulartypescript

解决方案


一个(有点脏)的解决方案是将它包装在一个数组中并使用 ngFor 像:

<ion-item [color]="value < 0 ? 'danger' : 'success'" *ngFor="let value of [getValue()]">
  <h3>Value</h3>
  <p item-end>{{ getFormatString(value) }}</p>
</ion-item>

推荐阅读