以下のコードを使用してangular2のキーを使用してオブジェクトのプロパティをレンダリングしようとしています:
_<ul>
<li *ngFor="let element of componentModel | keys;let i=index">
{{element.key}}--{{element.value}} // 1---Bhushan...loaded only once
<span *ngIf="element">{{ loadProperty(i,element) }}</span>
</li>
</ul>
_
しかし、私はここで問題に直面しています。ブラウザの出力は一度だけ読み込まれます。しかし、メソッド呼び出し、つまりloadProperty(i,element)
は無限ループで実行されています。
_loadProperty(i:number,element:any){
console.log(element.key+'========'+element.value);
console.log(element);
}
_
ブラウザ出力を意味します
(1 ---ブーシャン)
は1回だけ表示されますが、コンソールでは次のように無限に実行されます。
このメソッドを繰り返しごとに1回だけ呼び出したいです。
入力はありますか?
これは、Angular2の変更検出で、各変更検出サイクルでloadProperty(i,element)
を繰り返し呼び出しています。
テンプレートからメソッドを呼び出すことは、頻繁に呼び出されるためお勧めできません。代わりに、結果をプロパティに格納し、代わりにこのプロパティにバインドする必要があります。