2017-08-11 96 views
1

动态创建的div我创建一个div,并希望其内容呈现到其组件的HTML如何呈现在角2

component.ts文件

div = document.createElement('div'); 

component.html文件

<div [innerHtml]='div'></div> 

它显示[object HTMLDivElement]而不是div内容。

有什么方法可以正确渲染它吗?

版本:Angular 2.3

这里是plunker

+0

你可以创建一个plunker吗? –

+0

直接操作DOM不是一个好习惯。您应该真正利用Angular模板语法,并在您的HTML模板中使用div,然后仅在使用* ngIf准备好时才显示它。 – alcfeoh

回答

1

你们看到的是div元素为String类型的转换的结果,当你写信给innerHTML属性,它必须是一个字符串,它发生。

由于innerHtml属性,您想要编写div的内容,而不是HTMLDivElement本身。像这样将工作:

const div = document.createElement('div') 
div.innerHTML = '<h3>Hello there</h3>' 

this.div = div.outerHTML; 
1

创建,并在标签使用ngIf。 如果条件为真,那么将显示div