Javascript Angular5*ngIf=“afunctioncall();let L”导致函数被调用4次

Javascript Angular5*ngIf=“afunctioncall();let L”导致函数被调用4次,javascript,angular,angular5,angular-ng-if,Javascript,Angular,Angular5,Angular Ng If,我正在使用Angular 5,我希望元素在函数调用的结果从数组中查找后返回一个对象,然后我使用let L作为变量对象来保存它 当我这样做的时候,我注意到这个函数被多次调用 我创建了一个堆栈闪电战来显示这种情况。在这里,该函数被调用了4次,但在我的本地应用程序中,它被调用了6次以上 我知道这是因为变化检测周期。但我不知道如何合乎逻辑地解决这种情况 我已经看到了下面的帖子,但是它与Angular 2有关。我不确定这是否相关 “console.log”被输出4次 有人能指给我看吗,或者我遗漏了什么 有

我正在使用Angular 5,我希望元素在函数调用的结果从数组中查找后返回一个对象,然后我使用let L作为变量对象来保存它

当我这样做的时候,我注意到这个函数被多次调用

我创建了一个堆栈闪电战来显示这种情况。在这里,该函数被调用了4次,但在我的本地应用程序中,它被调用了6次以上

我知道这是因为变化检测周期。但我不知道如何合乎逻辑地解决这种情况

我已经看到了下面的帖子,但是它与Angular 2有关。我不确定这是否相关

“console.log”被输出4次

有人能指给我看吗,或者我遗漏了什么

有什么办法可以避免吗

任何帮助都将不胜感激

我需要向该方法传递一个数组,并从该数组中获取一个选定的分支


在模板上调用ngOnInit中的函数

export class AppComponent implements OnInit {

finaldata : any;


ngOnInit() {

     this.finaldata = this.getSelectedLeg(this.data);

  }


}
在html中

<div *ngIf="finaldata; let L">

</div>

角2解仍然是相关的。你能解释一下这个解吗@YounesM@UmerMehAr关于这个解决方案,你还不了解什么?你试过了吗?发生了什么?我正在根据用户交互从数组传递一个自定义选定对象。那么我如何在构造函数或ngOnInit中调用它呢?@UmerMehAr而不是在.html中调用函数,在那里有变化检测,只需在.ts上完成所有工作并显示结果:我很感激,但你能再次看到我的问题吗?我又添加了两张图片。你现在的问题是什么?你能解释清楚吗?我的问题是在添加console.log。。。在getSelectedLeg方法中,它可以运行5到6次以上。因为它应该只有一次。角度变化检测器检测其他地方的变化,但它也可能调用此函数。