首页 文章

将HTML传递给mat对话框 - Angular Material

提问于
浏览
0

我正在尝试将HTML传递给mat对话框,但它在对话框中显示 [object HTMLTableElement] 而不是表HTML .

我试过的步骤:

  • 在模板中制作了一个元素参考,如下所示:
<table hidden #contentTable><th></th><tr></tr></table>
  • 在组件中访问ViewChild
@ViewChild('contentTable', { read: ElementRef }) contentTable: ElementRef<any>;
  • 将此作为DialogComponent中的数据传递给
const tableData = this.contentTable.nativeElement;
const dialogRef = this.dialog.open(GeneralDialogComponent, {
    panelClass: 'customDialog',
     data: {
        title: `${data.count}`,
        content: tableData
     }
});
  • 在DialogComponent中,访问的数据内容如下:
// method in component
getHtml(html) {
   return this.domSanitizer.bypassSecurityTrustHtml(html);
}
  • 然后在HTML中访问如下:
<div [innerHTML]="getHtml(data?.content)"></div>

但它不打印表而是打印 [object HTMLTableElement] .

屏幕截图如下:

enter image description here

请问有哪些线索?

1 回答

  • 0

    你应该传递elementRef的innerHtml本身:

    <div [innerHTML]="getHtml(data?.content.innerHTML)"></div>
    

相关问题