繁体   English   中英

角度材质无法将数据对象传递给 matdialog 对话框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM