在我的数组pitanje ['odgovori']中,我有3个值,因此它应该仅循环3个,但是不知何故,它循环几次查看图片...所以[0,1,2]并循环几次...我的目标是将该值传递给changeColor() 并与其他产品进行比较以更改芯片颜色
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);
}
答案 0 :(得分:1)
解决方案是将管道用于changeColor函数。管道将获取i值,其转换函数将执行changecolor函数应该执行的操作。
如果管道与直接改变管道结果的状态无关,则管道纯净且不会在更改检测后再次发生的好处。
另一种解决方案是使用lodash-decorators和memoize装饰器。
import {memoize} from 'lodash-decorators';
@memoize()
changeColor(value: number) {
console.log(value);
}
如果使用相同的值调用,则不会输入该函数。