私は配列に基づいて、* ngForディレクティブを持つコンポーネントがあります:deleteCar()
方法Iの購読でので、車を削除することができコンポーネントIMの他の部分では配列オブジェクトが変更されたときに変更検出をトリガする方法は?私angular4アプリで
<div *ngFor="let person of persons">
{{person.name}}
{{person.car}}
</div>
を更新へpersons
配列:
deleteCar(car) {
this.carService.deleteCar(car).subscribe(() => {
this.persons.filter(obj => obj.car == car.name)
.forEach(i => i.car = null);
}
}
問題は、私は人の列内の既存のpersonオブジェクトを変更するとき* ngForループがトリガされていないということです。これを解決するには?
それは角度の各変化検出後のビューを再描画するために強制していないのだろうか? –
はい、人物サービスの人物オブジェクトを使用するすべてのコンポーネントが更新されます。アプリケーションのオブジェクト(状態)が変更された場合、なぜあなたのビューを変更したくないのですか?再レンダリングしなかった場合は、誤った情報が表示されます。または過去の状態。 –
アプリケーションのサイズに応じて、ngrxの使用を検討することもできます。 –