呈现组件的HTML,以便可以用来打开about:blank类型的新标签(空白的新html页面,与应用程序本身无关。
为什么?为了避免使用字符串变量来创建HTML,例如:
var html = '<div>
<h3>My Template</h3>
' + myProperty + '
</div>';
我看到您可以使用ViewContainerRef.createComponent
和ComponentFactoryResolver
动态渲染组件。问题在于该组件在应用程序中的视图容器内部呈现。我想做的就是生成该组件的HTML,这样我就可以使用该HTML将其放置在所需的位置。 (在这种情况下,在window.open()
方法给定的对象的document属性中)
示例:
@Component({
selector: 'app-component',
template: `
<div>
<h3>My Template</h3>
{{ myProperty }}
</div>
`,
styleUrls: ['./my.component.less']
})
export class MyComponent{
myProperty: string;
}
我希望以这种方式使用它:
//get new window tab
var newTab = window.open('about:blank', '_blank');
//get the HTML of the component
//use it to open the new tab
newTab.document.write(html);