对于 mdDialog ,如何传入变量?具体来说,如何将 Angular 服务注入(inject)到对话框组件中?
最佳答案
为了传递变量,您可以从 MdDialog.open() 方法调用返回的 MdDialogRef 实例中获取在对话框中打开的组件的实例。
dialogRef = this.dialog.open(PizzaDialog, config)
dialogRef.componentInstance.<property_name>
来自 的改良披萨 github material2 docs angular material doc
@Component({
selector: 'pizza-component',
template: `
<button type="button" (click)="openDialog()">Open dialog</button>
`
})
export class PizzaComponent {
constructor(public dialog: MdDialog) { }
openDialog() {
let config = new MdDialogConfig();
let dialogRef:MdDialogRef<PizzaDialog> = this.dialog.open(PizzaDialog, config);
dialogRef.componentInstance.name = "Ham and Pineapple";
dialogRef.componentInstance.size = "Large";
}
}
@Component({
selector: 'pizza-dialog',
template: `
<h2>{{name}}</h2>
<p>Size: {{size}}</p>
<button type="button" (click)="dialogRef.close('yes')">Yes</button>
<button type="button" (click)="dialogRef.close('no')">No</button>
`
})
export class PizzaDialog {
name:string;
size:string;
constructor(public dialogRef: MdDialogRef<PizzaDialog>) { }
}
关于angular - 如何将服务变量传递到 Angular Material 对话框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648252/