角属性绑定循环不应该多

时间:2019-06-09 21:00:11

标签: javascript angular typescript ionic-framework

在我的数组pitanje ['odgovori']中,我有3个值,因此它应该仅循环3个,但是不知何故,它循环几次查看图片...所以[0,1,2]并循环几次...我的目标是将该值传递给changeColor()  并与其他产品进行比较以更改芯片颜色

enter image description here

HTML

<ion-chip *ngFor="let odgovor of pitanje['odgovori']; index as i" 
 [color]="changeColor(i)">
     <ion-icon name="checkmark-circle"></ion-icon>
     <ion-label>{{ odgovor }}</ion-label>
</ion-chip>

TS

changeColor(value: number) {
    console.log(value);
}

1 个答案:

答案 0 :(得分:1)

解决方案是将管道用于changeColor函数。管道将获取i值,其转换函数将执行changecolor函数应该执行的操作。

如果管道与直接改变管道结果的状态无关,则管道纯净且不会在更改检测后再次发生的好处。

另一种解决方案是使用lodash-decorators和memoize装饰器。

import {memoize} from 'lodash-decorators';

@memoize()
changeColor(value: number) {
    console.log(value);
}

如果使用相同的值调用,则不会输入该函数。