У меня есть приложение Angular 8, у которого есть родительский компонент, который при нажатии кнопки отображает всплывающее модальное диалоговое окно. Когда я нажимаю кнопку «Сохранить» во всплывающем диалоговом окне, я хочу отправить выбранный объект обратно родительскому компоненту.
Я считаю, что лучший способ сделать это - использовать EventEmitter. У меня установлен эмиттер в модальном диалоге. Но я не могу вернуть данные родителю. Это то, что у меня есть ... РОДИТЕЛЬСКИЙ КОМПОНЕНТ: HTML
<mat-toolbar color="primary">
<button
mat-raised-button
color="primary"
id="mat-toolbar__get-rate-button-id"
[disabled] = !triplegForm.valid
(click) = "getRates($rateEvent)"
>
GET RATE
</button>
</mat-toolbar>
КОД ТС
getRates(rateEvent):void{
let getRateDialog = this.getRateDialog.open(GetRatesComponent, {
width: '95%',
height: '80%'
});
getRateDialog.afterClosed().subscribe( result => {
this.selectedRate = result
console.log("returned from rate dialog: ", this.selectedRate.rateAmount);
});
}
ВСПЛЫВАЮЩИЙ МОДАЛЬНЫЙ HTML
<mat-toolbar>
<button id="rateModalSave" mat-raised-button color="primary"
[disabled]="!enableSaveButton()" (click)="saveRate()">SAVE
</button>
</mat-toolbar>
КОД ТС
export class GetRatesComponent implements OnInit {
selectedRate: Rate;
constructor(private rateService: RateService,
private dialogRef: MatDialogRef<GetRatesComponent>) {
}
...
saveRate() {
console.log("selected rate: ", this.selectedRate);
this.rateSaved.emit(this.selectedRate);
this.dialogRef.close();
}
}
Таким образом, selectedRate
установлен в дочернем компоненте. Но this.selected.rateAmount
в операторе ведения журнала в родительском элементе не определен.
После того, как скорость передается из дочернего элемента, мне нужно закрыть всплывающее окно. Но я не вижу