角度模板范围变量

时间:2019-01-27 04:43:42

标签: angular typescript

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

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

我期望像这样:

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

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

其他:不创建新指令。 也许将值包装在数组中以使用ngFor?但这是丑陋的。 ...我相信这是可能的。我过去曾这样做。但是我不知道了。

2 个答案:

答案 0 :(得分:0)

一种(有点脏)的解决方案是将其包装在数组中,并使用ngFor like:

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

答案 1 :(得分:0)

*ngFor="let value of values;"

{{value | formatString}}

使用自定义过滤器转换值。