Ich habe eine übergeordnete Komponente:Warum würde die Änderung der Elementreihenfolge in einem Array in * ngFor = "let x of xs" die Komponente onChanges nicht auslösen?
<div *ngFor="let slice of slices">
<my-slice [slice]="slice">
</div>
und Kind-Komponente:
export class SliceComponent implements OnChanges {
@Input()
slice: Slice;
...
}
Wenn ich den folgenden Code in der übergeordneten Komponente ausführen, werden nicht erhalten die Kinder Komponenten aktualisiert, obwohl die Ansicht Reihenfolge ändert sich.
let slice = this.slices[0];
this.slices[0] = this.slices[1];
this.slices[1] = slice;
Außerdem, wenn ich folgendes
<div *ngFor="let slice of slices; let i=index">
<my-slice [slice]="slice" [sliceOrder]="i">
</div>
Nun fügen onChanges
würde mit Änderungen sliceOrder
statt slice
fertig gebrannt.
Wie wählt angular2, was in der Komponenteneingabeeigenschaft geändert wird? Warum wird in diesem Fall sliceOrder
geändert, nicht slice
?