То, что вы пытаетесь сделать, довольно просто, и у вас уже есть много вещей (например, реактивные формы), чтобы это произошло.
Ваш модал у вас в порядке, но вам, вероятно, следует использовать отдельный компонент для всплывающего окна, и для передачи ему информации это будет выглядеть так:
В свой вызывающий шаблон включите некоторый шаблон, который будет иметь шаблон для всплывающего окна или модальный или любой другой, который содержит компонент, см. Ниже:
<ng-template #formPopup>
<form-popup
[select1]="Form.get( 'Select1' ).value"
[number]="Form.get( 'Number' ).value"
[purpose]="Form.get( 'Purpose' ).value"
[name]="Form.get( 'name' ).value">
</form-popup>
</ng-template>
Это передаст эти значения как входные данные, как они есть в вашем компоненте при его создании:
export class FormPopupComponent {
@Input() select1 : any;
@Input() number : number;
@Input() purpose : string;
@Input() name : string;
// Do things with these inputs as needed in this component
}
При нажатии, как вы указали, вам также придется открыть диалоговое окно или всплывающее окно или что-либо еще, что подробно описано здесь . Но вот краткое резюме - в вашем компоненте для исходного шаблона, содержащего форму, вам понадобится ссылка на ваше всплывающее окно, которое мы уже создали:
@ViewChild( 'formPopup' ) formPopupRef : TemplateRef<any>;
constructor(public dialog: MatDialog) {}
openDialog(): void {
const dialogRef = this.dialog.open( this.formPopupRef );
}