私は数値のネストされた配列をレンダリングするために*ngFor
を使用する角2コンポーネントを持っています。リストの参照が変更された場合でもngForの要素を再利用する方法は?
@Component({
selector: 'app',
template: `
<div *ngFor="let row in data">
<div *ngFor="let curve in row">
<chart [data]="curve">
</div>
</div>
`,
directives: [Chart],
})
export default class App {
data: number[][][];
}
私はdata
を変更、角度は、新しい配列が同じ次元を持っている場合でも、<chart>
要素を置き換えます。私は、チャートのプロパティを更新するだけで、データの変更をアニメートできるように要素を保持することが欲しいです。
新しい配列が新しいオブジェクト参照であるため、Angularが要素を置き換えることは理解できます。しかし、どうすればこれを回避できますか?
あなたは[ngForTrackBy](https://angular.io/docs/ts/latest/guide/template-syntax.html#!#ngfortrackby)を使用してもらえますか? – Michael
@Michaelこれはまさに私が探していたものです: 'trackByIndex(index:number、data:any){return index; } '。これを答えることができますか? – danijar
+1この質問は、眺めとアップポントの量が邪魔になります。たとえば、ReactJSは、あなたのリストアイテムに「キー」プロパティを与えて、リストを経済的に再レンダリングできるようにすることを忘れた場合、ヒイシーを投げます。 –