trackBy se restablece aunque no debería

Tengo el siguiente código:

this.swingCasesService.$positions.subscribe(swingPositions => {
   this.swingPositions = swingPositions
}
trackById(index: number, swingPosition: SwingPosition) {
   return swingPosition.id
}

Juntos con:

<ng-container *ngFor="let position of swingPositions; index as i; trackBy: trackById;">
   <input [(ngModel)]="position.stopLoss" />
</ng-container>

Esto debería dar como resultado que <input [(ngModel)]="position.stopLoss" /> no se restablezca cuando se actualicen los datos, ya que swingPosition.id sigue siendo el mismo. Sin embargo, cada vez que se actualiza la matriz swingPositions, todos mis [(ngModel)] se restablecen a su valor predeterminado. ¿No es esto lo que trackBy debería arreglar? ¿O qué me estoy perdiendo? ¿Cómo puedo evitar que el campo de entrada stopLoss obtenga su valor original cuando se actualiza la matriz?

Answer