2017-05-26 69 views
1

我的应用确实有一些用户从richtext编辑器(froala)贡献的内容,并且内容可能包含对另一页面的一些内部引用。我喜欢让那些routerlink像切换页面而不是打开另一个。但是,它既不是作为innerHtml也不是froalaView指令。角度路由器链接在Html内容中不起作用

+0

什么是你的代码看起来像? – echonax

+0

让说我有一个像 一些HTML'让HTML = '

some message Link
';' 然后在组件的HTML ''
路由器链接无法正常工作 – ChrisC

回答

0

我终于解决了我自己的参照别人,wannaa份额为那些谁拥有了同样的问题

@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);    
}