2017-12-25 3 views
-3

私はAngular 5を扱っていますが、関数呼び出しの結果で配列から見つかった要素を返したい場合は、let Lを変数オブジェクトとして使用しますそれを保持する。Angular5 * ngIf = "関数呼び出し(); L "関数が4回呼び出されるようにする

私はこれを行うと、その関数が複数回呼び出されていることに気付きました。

enter image description here

私はこのような状況を表示するには、スタック・ブリッツを作成しました。ここでは関数は4回呼び出されますが、ローカルアプリケーションでは6回以上呼び出されます。私はこれを知っている

https://stackblitz.com/edit/angular-ypwswn

があるため変更検出周期です。私は論理的にこの状況を解決する方法を理解できませんでした。それは角度2に関連していると

は、私はそれが

Angular2 *ngIf="afunctioncall()" results in the function being called 9 times

「にconsole.logは4回出力され、関連するだか分からないが、次のポストを見てきました。

誰かが私を指摘することはできますか、何か不足していますか?

それを避ける方法はありますか?

ご協力いただければ幸いです。

そのメソッドに配列を渡し、その配列から選択された脚を取得する必要があります。

This is View This is method

+0

角度2溶液中の代わりにテンプレート

export class AppComponent implements OnInit { finaldata : any; ngOnInit() { this.finaldata = this.getSelectedLeg(this.data); } } 

にngOnInit内の関数は、まだ関連しています。 – YounesM

+0

解決策を教えていただけますか? @ YounesM –

+0

@UmerMehArあなたはその解決策について何か理解していませんか?それを試しましたか?何が起こった? – jonrsharpe

答えて

1

コールHTML

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

</div> 
+0

私はもう一度私の質問を見ることができますか?私は2つの写真を追加しました –

+1

今あなたの問題は何だったのですか? –

+0

私の問題はgetSelectedLegメソッドで 'console.log(...)'を追加するときです。それは5,6回以上コンソールです。それは1回だけでなければならないからです。角度変化検出器の検出は他の場所で変更されましたが、おそらくこの関数も呼び出されます。 –

関連する問題