Диалог передачи HTML в мат - угловой материал

Я пытаюсь передать HTML в диалоговое окно mat, но в диалоговом окне отображается [object HTMLTableElement] вместо HTML таблицы.

Шаги, которые я пробовал:

  1. Сделал ссылку на элемент в шаблоне, как показано ниже:

    <table hidden #contentTable><th></th><tr></tr></table>
    
  2. Доступ к ViewChild в компоненте как

    @ViewChild('contentTable', { read: ElementRef }) contentTable: ElementRef<any>;
    
  3. Передал это как данные в DialogComponent как

    const tableData = this.contentTable.nativeElement;
    const dialogRef = this.dialog.open(GeneralDialogComponent, {
        panelClass: 'customDialog',
         data: {
            title: `${data.count}`,
            content: tableData
         }
    });
    
  4. В DialogComponent осуществляется доступ к содержимому данных, как показано ниже:

    // method in component
    getHtml(html) {
       return this.domSanitizer.bypassSecurityTrustHtml(html);
    }
    
  5. Затем в HTML, доступном так:

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

но он не печатает таблицу, а печатает [object HTMLTableElement].

Снимок экрана, как показано ниже:

введите здесь описание изображения

Какие-нибудь зацепки, пожалуйста?


person Gags    schedule 21.07.2018    source источник
comment
Ваш tableData содержит какие-либо теги <br> ??   -  person David R    schedule 21.07.2018
comment
Нет ... Это ElementRef   -  person Gags    schedule 21.07.2018


Ответы (1)


вы должны передать innerHtml elementRef, а не самого себя:

<div [innerHTML]="getHtml(data?.content.innerHTML)"></div>
person Fateme Fazli    schedule 21.07.2018
comment
Тогда он не будет печатать таблицу .. так как мне нужен externalHTML, но он недоступен в ElementRef - person Gags; 21.07.2018
comment
Я не получаю сообщение об ошибке, потому что ElementRef и outerHTML работают, но это тоже не так, как ожидалось. - person Fateme Fazli; 21.07.2018
comment
он возвращает пустой HTML .. Еще какие-нибудь предложения, пожалуйста .. Попробую использовать TemplteRef? - person Gags; 21.07.2018
comment
Я делаю это в диалоге MAT ... это имеет значение? - person Gags; 21.07.2018
comment
без разницы stackblitz - person Fateme Fazli; 21.07.2018
comment
проверьте этот с помощью диалогового окна mat. - person Fateme Fazli; 21.07.2018