我有以下角度来添加动态加载的内容:
main.html中
<div class="top">
<ng-template #main></ng-template>
</div>
Run Code Online (Sandbox Code Playgroud)
main.ts
import { Component, ViewChild, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';
@Component({
selector: 'page-main_page',
templateUrl: 'main_page.html'
})
export class main_page {
@ViewChild('main', { read: ViewContainerRef }) entry: ViewContainerRef;
data: any;
constructor(public resolver: ComponentFactoryResolver){
};
ngOnInit(){
this.getDynamicREST().then((res)=>{
this.data = res; //Where it is a html markup from php server: <div class="sample"> Example </div>
const factory = this.resolver.resolveComponentFactory(this.data);
this.entry.createComponent(factory);
})
};
}
Run Code Online (Sandbox Code Playgroud)
在getDynamicRest(),我从PHP服务器获得一个HTML标记,如:
<div class="sample"> Example </div>
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误 "Error: No component factory found for …
我正在开发一个应用程序,我从服务器获取 html 格式的响应。我正在使用DomSanitizer 的bypassSecurityTrustHtml 并将清理后的html 添加到我的组件() 中。
我的问题是响应中的一些元素包含标签来指示可以从该元素构建链接,例如:
<div thisIsActuallyaLink linkParam1="foo" linkParam2="bar">clickHere</div>
Run Code Online (Sandbox Code Playgroud)
我想创建一个应用于innerhtml的指令,但是当显示html时,它不是用我的指令编译的...
如果有人想知道为什么转换 html 不是在服务器端完成:响应在多个应用程序中使用,并且链接必须根据应用程序具有不同的相对 url :-(