我试图在一个div中放置一个ngIf,在一个td元素中的ngFor内。 我在我的html组件中有这个:
<td id="fila{{registro.id}}" *ngFor="let campo of cabeceras">
<div *ngIf="matching(registro[campo])">{{registro[campo]}}</div>
</td>
此外,我的component.ts中的matching()函数是:
matching(valor) : boolean {
var resultado : boolean = true;
if(valor.toString.match(this.filtertext) == null ){
resultado = false;
}
return resultado;
}
我不明白为什么但是ngIf一直在调用这个函数。
感谢。
答案 0 :(得分:0)
Angular每次运行另一个更改检测周期时都会评估所有绑定。
最好将结果分配给字段并绑定到该字段,而不是绑定到函数。
预先创建一个结果数组并绑定到此数组而不是
matching(registro[campo])
在ngFor中引入索引使这很容易
*ngFor="let campo of cabeceras; let i=idx"