InnerHTML中的实际动态模板或渲染组件

时间:2017-01-17 16:48:42

标签: angular angular2-directives angular2-components

我看过,无法找到我正在寻找的东西。我找到了使用DynamicComponentLoader,ComponentResolver和ComponentFactoryResolver的示例,但还没找到我正在寻找的内容。

我可以使用已知模板构建一个组件(* ngFor ="让obj of arr")但是如何使用存储/注入到视图/变量的组件来呈现页面呢?

例如:

@Component({
    template : '{{html}} or <div [innerHTML]="html"></div>'
})

ngOnInit(){
    // simulate getting content from api/database
    this.html = `<div>testing <somecomponent></somecomponent></div>`;

    // ideally, get content from api/database
    // var path = 'some/path';
    // myhttpservice.get(path).subscribe((res:any)=>{
    //    this.html = res.html;
    // });
}

我无法获得上述代码来渲染&#34;某些组件&#34;。我尝试了很多方法使用SafeHtml,ng-content,[innerHTML] =&#34; var&#34;等等。没有多汁。

有什么想法吗?我发现有一篇帖子说它不可能......我觉得这是一个挑战。

这种类型的代码有效,但它又是MyComponent中的已知模板:

const factory = this.componentFactoryResolver.resolveComponentFactory(MyComponent);
const ref = this.viewContainerRef.createComponent(factory);

也许我需要覆盖组件模板(在&#39; factory&#39;内),并更新本地html变量?

任何人有任何想法/解决方案吗?

0 个答案:

没有答案