应用加载时的模态对话框

时间:2017-05-05 07:23:38

标签: angular modal-dialog material-design angular-material

我对模态对话有一些疑问:

1。我如何将数据传递给模态并从模态中返回数据?

2。我想在应用程序加载时显示模态对话框,按下按钮后会转到第二页。

让我们假设我的对话框。

@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);

  }
}

@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>) { }
}

1 个答案:

答案 0 :(得分:0)

我如何将数据传递给模态并从模态中返回数据? - 关于此,有很好的文档(https://material.angular.io/components/component/dialog) 基本上,您可以通过设置组件实例将数据从父组件设置为对话框组件。在关闭方法之后,您可以通过对话框引用将对话框中的数据返回到父组件:

dialogRef.afterClosed().subscribe(result => {
  this.selectedOption = result;
});

我想在应用加载时显示模态对话框,按下按钮后会转到第二页。 - 您可以在对话框上调用打开方法在ngOnInit生命周期钩子中。