Я пробовал много вариантов stackoverflow, таких как Динамически загружать существующие компоненты Angular 2 Final Release.
То, что я хочу сделать, это получить html-страницу с помощью ajax-запроса и отобразить/скомпилировать этот шаблон в моем настраиваемом компоненте.
Я понял, что angular2 имеет два устаревших компонента и что я должен использовать ComponentFactoryResolver.
В моем старом решении я мог просто установить '[innerHtml]' для отображения HTML. Теперь мне нужно новое решение.
Кто может помочь мне?
page.component.ts
import { Component, ViewChild, ViewContainerRef, ComponentFactory, OnInit, ComponentFactoryResolver } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
@Component({
selector: "wd-page",
templateUrl: "/app/page/page.component.html",
providers: []
})
export class PageComponent implements OnInit {
// we need the viewcontainer ref, so explicitly define that, or we'll get back
// an element ref.
@ViewChild('dynamicChild', { read: ViewContainerRef })
private target: ViewContainerRef;
private page = {
Source: "<div><h2>Hello world</h2><one-of-my-components></one-of-my-components></div>"
}
constructor(
private vcRef: ViewContainerRef,
private resolver: ComponentFactoryResolver) { }
ngOnInit() {
//What code do i need here?
}
}
<div #dynamicChild></div>
<!-- Old implementation!
<div *ngIf="!showSource" [innerHTML]="page">
</div>
-->