Объекты передаются по ссылке, поэтому, по существу, this.sample
и соответствующий sample
в массиве указывают на один и тот же объект.Вместо этого вы можете передать индекс и использовать оператор распространения.Поэтому добавьте индекс к вашей итерации:
<tr *ngFor="let sample of samples; let i = index">
Передайте индекс функции щелчка:
(click)="updateSample(i, updateSampleModal)
и самой функции, где вы объявили переменную index
в своемкомпонент:
updateSample(index: any, modal) {
this.index = index;
this.sample = { ...this.samples[index]};
this.modalRef = this.modalService.show(modal,
Object.assign({}, { class: 'gray modal-lg' })
);
}
И если нажата кнопка сохранения, присвойте значение конкретному образцу в массиве:
update(sample) {
this.samples[this.index] = sample;
}
Ваш StackBlitz