Я пытаюсь открыть компонент диалога углового материала после успешной вставки в базу данных:
addHousehold(){
let last_name_ar = this.formGroup.controls['last_name_ar'].value;
let last_name_en = this.formGroup.controls['last_name_en'].value;
.......//Other data
let arrayOfLegalProtection = this.arrayOfLegalProtection;
this.showSpinner = true;
this.auth.addHousehold(this.unit_id,
...//Other data
this.user_id
).subscribe(
(data)=>{
console.log(data);
if(data=="enableAdd")
{
this.showSpinner = false;
this.enableDisableAdd = "enableAdd";
this.formGroup.reset();
this.arrayOfLegalProtection = [];
// this.openDialog(data);
this.openDialog();
}
else
{
this.showSpinner = true;
this.enableDisableAdd = "disableAdd";
this.formGroup.reset();
}
},
(error)=>{
console.log(error);
}
)
}
Как видите, я добавил следующую строку в (data)
часть subscribe()
Метод:
this.openDialog();
openDialog()
имеет следующий код:
openDialog(): void {
const dialogRef = this.dialog.open(AddIndividualComponent, {
width: '250px',
data: {unit_id: this.unit_id}
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
});
}
Если вставка в базу данных прошла успешно, диалоговое окно не открывается, и в окне не отображаются ошибки.console.
Когда я перемещаю this.openDialog()
за пределы метода подписки, диалоговое окно открывается нормально.
Я даже пытался объявить функцию с нуля внутри подписки (), но получил ошибкуговоря, не могу найти openDialog()
.
Как открыть диалоговое окно углового материала после добавления в базу данных и получить успешный ответ?