2017-05-26 78 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);    
}