Angular 5-函数调用了1000次

时间:2018-06-19 11:49:10

标签: angular

我有一个简单的数组,其中有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次

为什么,为什么?有任何线索吗?

该函数在这里仅被调用一次!

谢谢!

2 个答案:

答案 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内添加一个变量,然后在该函数中执行任何操作,将最终结果分配给新创建的变量