我的应用确实有一些内容由用户从richtext编辑器(froala)提供,内容可能包含对另一个页面的一些内部引用。我喜欢将这些路由器链接转换为切换页面而不是打开另一个。但是,它既不能用作innerHtml也不用于froalaView指令。
答案 0 :(得分:0)
我最后通过引用其他人来解决这个问题,想要分享那些有同样问题的人
@ViewChild('articleContent', {read: ViewContainerRef})
articleContentRef: ViewContainerRef;
private injector: Injector;
constructor(
injector: Injector,
private compiler: Compiler,
) {
this.injector = ReflectiveInjector.resolveAndCreate(COMPILER_PROVIDERS, injector);
this.compiler = this.injector.get(Compiler);
this.init();
}
init() {
const compMetadata = new Component({
selector: 'article-content',
template: this.article.content,
});
const cmpClass = class DynamicComponent { };
const decoratedCmp = Component(compMetadata)(cmpClass);
const moduleMetaData = new NgModule({
imports: [CommonModule, RouterModule], declarations: [decoratedCmp], entryComponents: [decoratedCmp]
});
const cmpModule = class DynamicHtmlModule { };
const decoratedModule = NgModule(moduleMetaData)(cmpModule);
const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(decoratedModule);
const moduleRef: NgModuleRef<any> = moduleFactory.create(this.injector);
const injector = moduleRef.injector;
this.componentRef = this.articleContentRef.createComponent<any>(
injector.get(ComponentFactoryResolver).resolveComponentFactory(decoratedCmp),
0,
injector);
}