Angular路由器链接在Html内容中不起作用

时间:2017-05-26 04:13:04

标签: angular froala

我的应用确实有一些内容由用户从richtext编辑器(froala)提供,内容可能包含对另一个页面的一些内部引用。我喜欢将这些路由器链接转换为切换页面而不是打开另一个。但是,它既不能用作innerHtml也不用于froalaView指令。

1 个答案:

答案 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);            
}