2017-10-18 28 views
1

即時嘗試將一個ngIf放在一個div中,在ng元素內的一個td元素。 我有這個在我的HTML組件:ng如果無限循環內ng對於

<td id="fila{{registro.id}}" *ngFor="let campo of cabeceras"> 
    <div *ngIf="matching(registro[campo])">{{registro[campo]}}</div> 
</td> 

而且,在我component.ts匹配()函數是:

matching(valor) : boolean { 
     var resultado : boolean = true; 
     if(valor.toString.match(this.filtertext) == null){ 
      resultado = false; 
     } 
     return resultado; 
    } 

我不明白爲什麼,但ngIf調用函數的所有時間。

謝謝。

+0

@Sajeetharan但它不是n次,它只是無限! –

+0

你能否提供cabeceras,registro和filtertext的示例數據? – Chandru

回答

0

Angular會在每次運行另一個更改檢測週期時評估所有綁定。

最好將結果分配給一個字段並綁定到該字段而不是綁定到一個函數。

創建結果的排列事先並綁定到這個陣列,而不是

matching(registro[campo]) 

引入的指數ngFor讓一切變得簡單

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