ngIf

时间:2017-10-18 02:34:43

标签: angular

我试图在一个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一直在调用这个函数。

感谢。

1 个答案:

答案 0 :(得分:0)

Angular每次运行另一个更改检测周期时都会评估所有绑定。

最好将结果分配给字段并绑定到该字段,而不是绑定到函数。

预先创建一个结果数组并绑定到此数组而不是

matching(registro[campo])

在ngFor中引入索引使这很容易

*ngFor="let campo of cabeceras; let i=idx"