【发布时间】:2018-07-21 07:24:01
【问题描述】:
我正在尝试将 HTML 传递给 mat 对话框,但它在对话框中显示 [object HTMLTableElement] 而不是 Table 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]。
截图如下:
请问有什么线索吗?
【问题讨论】:
-
您的
tableData是否包含任何<br>标签?? -
不...是 ElementRef
标签: angular angular6 angular-material-6