[英]Angular Material Can't pass data object to matdialog dialog
我在这里查看了一些帖子,并仔细检查了如何将数据从 Angular 组件传递到 MatDialog,但是在加载对话框时我得到了“未定义”。
到目前为止,这是我的代码
import { MatDialog } from '@angular/material';
let dialogReff = this.dialog.open(MyComponent,
{
panelClass: 'custom-dialog-container',
data: { myObject: selectedObject},
disableClose: true
});
我在这里添加了一个断点并验证 selectedObject 包含所有字段而不是“未定义”
在我的对话框构造函数中
import { Component, OnInit, AfterViewInit, Inject, ViewChild, ElementRef } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { FormControl, Validators } from '@angular/forms';
constructor(public dialogRef: MatDialogRef<InventoryRequiredInfoViewerComponent>,
@Inject(MAT_DIALOG_DATA) public data: { myObject: any}) {
var test = data.myObject;
}
当我在这里中断时, data.myObject 是未定义的。
我将对话框类添加到 app.module.ts 部分:
@NgModule({
declarations:
和
entryComponents:
我读了几篇文章,但不明白为什么数据对象没有成功传递给 MatDialog。 任何帮助表示赞赏。
我认为您能够获取数据,但您正在构造函数中重新定义它。 试试这个: @Inject(MAT_DIALOG_DATA) data
您好尝试修改您的代码如下:
let dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
dialogConfig.autoFocus = true;
dialogConfig.maxWidth = '400px';
dialogConfig.panelClass = 'custom-dialog-container';
dialogConfig.data = {
myObject: selectedObject,
};
let dialogReff = this.dialog.open(MyComponent, dialogConfig);
我希望我帮助了你
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.