,可以通过以下步骤实现:
下面是一个示例代码:
对话框组件(dialog.component.ts):
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-dialog',
templateUrl: 'dialog.component.html',
})
export class DialogComponent {
constructor(
public dialogRef: MatDialogRef<DialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any
) {}
onNoClick(): void {
this.dialogRef.close();
}
}
对话框组件模板(dialog.component.html):
<h1>对话框</h1>
<p>传递的值1:{{ data.value1 }}</p>
<p>传递的值2:{{ data.value2 }}</p>
<button mat-button (click)="onNoClick()">关闭</button>
调用对话框的组件(app.component.ts):
import { Component } from '@angular/core';
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
import { DialogComponent } from './dialog/dialog.component';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
})
export class AppComponent {
constructor(public dialog: MatDialog) {}
openDialog(): void {
const dialogConfig = new MatDialogConfig();
dialogConfig.data = {
value1: '值1',
value2: '值2',
};
const dialogRef = this.dialog.open(DialogComponent, dialogConfig);
dialogRef.afterClosed().subscribe((result) => {
console.log('对话框关闭,返回值:', result);
});
}
}
调用对话框的组件模板(app.component.html):
<button mat-button (click)="openDialog()">打开对话框</button>
通过以上步骤,可以在Angular 8中的对话框中传递多个值。在调用对话框组件时,通过MatDialogConfig的data属性传递需要的值,在对话框组件中可以通过MAT_DIALOG_DATA注入获取传递的值。关闭对话框时,可以通过MatDialogRef的close方法传递多个值作为参数,这些值可以在调用对话框的组件中通过订阅afterClosed方法获取。
领取专属 10元无门槛券
手把手带您无忧上云