我有一个简单的数组,其中有6个对象。 http://prntscr.com/jwp54d
我做了一个简单的*ngFor=""
,应该并且确实向我显示6行。
<ng-container *ngFor="let rec of deal.recycles">
<div *ngIf="checkReasonFilter(rec)" class="row" routerLink="/company" [queryParams]="{id: deal.withCompany}" fragment="recycled" >
我已经在checkReasonFilter(rec)
函数中添加了一个计数器,并且在加载时称为 672次!
为什么,为什么?有任何线索吗?
该函数在这里仅被调用一次!
谢谢!
答案 0 :(得分:2)
Magor,当您达成交易时,您可以映射阵列
deal.recycles=dealrecycles.map(rec=>{
return {
...rec, //<---all the properties of rec
show:checkReasonFilter(rec) //<--anohter one
}
})
因此,您有一个新属性“ show”,可以在* ngFor
中使用答案 1 :(得分:0)
因为每次角行程,它的摘要循环函数都会被调用。如果函数具有复杂的逻辑,通常不建议在ngIf
条件内添加函数。
解决此问题的最佳方法是在ngIf内添加一个变量,然后在该函数中执行任何操作,将最终结果分配给新创建的变量