То же значение отображается в диалоговом окне, поскольку вы явно привязываете значение элемента ввода с помощью ngModel
к первой строке ваших данных в этой строке:
<input matInput placeholder="First Name " id="" name=" [ngModel]="data[0].empName">
data [0] .empName всегда будет отображать empName
первой записи, потому что вы напрямую обращаетесь к ней через data[0]
.
Вместо этого вы должны передать толькострока, которую вы хотите редактировать, а не полный источник данных.
В вашем компоненте A вам нужно заменить ваш источник данных строкой, для которой было запущено действие редактирования:
this.dialog.open(BComponent,
{
data: this.datasource // --> change this to the row you want to edit
});
И в вашем диалогевы можете получить доступ к данным без индекса, так как это не массив, например, не полный источник данных:
<input matInput placeholder="First Name " id="" name=" [ngModel]="data.empName">