【问题标题】:Get data from md-dialog on Angular4从 Angular4 上的 md-dialog 获取数据
【发布时间】:2017-06-08 16:49:25
【问题描述】:

我正在我的 Angular 4 应用程序上实现 md-dialag from Material Design。我目前已经实现了将数据传递到模态,但没有成功检索到用户在对话框中输入的任何数据。

这是我打开对话框的方式:

ShowAddStop() {
    this.general = {fc: this.locationCtrl, fl: this.filteredLocations, selectedNewStop:this.selectedNewStop};
    let dialogRef = this.dialog.open(DialogAddStop,{data:this.general});
    dialogRef.afterClosed().subscribe(result => {
        console.log(result);
    });
}

但例如,在对话框中,我有一个希望用户填写的输入字段:

<input [(ngModel)]="ShortName">

Shortname 是我调用对话框的类上的一个变量,它不会更改该变量,我认为它会创建自己的范围,这就是它不使用我的类实例变量的原因。

在从对话框中检索数据时,我是否缺少一些基本的东西?

【问题讨论】:

  • 对话框如何关闭?
  • 像这样:

标签: angular angular2-services mddialog


【解决方案1】:

首先,在对话框构造函数中获取一个MdDialogRef&lt;DialogAddStop&gt; 引用和一个MD_DIALOG_DATA 标记:

constructor(
  @Inject(MD_DIALOG_DATA) private dialogData: any,
  private dialogRef: MdDialogRef<DialogAddStop>
) {}

有关MD_DIALOG_DATA 的一些解释,另请参阅Using MdDialogConfig data on Angular 2

在对话框类中创建shortName 变量:

public shortName: string

设置初始值shortName为父组件提供的值:

public ngOnInit(): void {
  this.shortName = this.dialogData['shortName']
}

创建“保存”处理程序:

public onSave() {
  this.dialogRef.close(this.shortName)
}

附加该处理程序到保存按钮:

<button (click)="onSave()" md-button>Save</button>

【讨论】:

  • 谢谢!但是如何从我调用对话框的类中获取该变量? (顺便说一下,它在对话框的 onSave() 方法中工作)
  • 您是否尝试订阅dialogRef.afterClosed() 并阅读其结果?
猜你喜欢
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
相关资源
最近更新 更多