Я использую компилятор Angular для компиляции компонентов во время выполнения. Этот код работает нормально, но если я хочу использовать предварительную визуализацию AOT, компонент работать не будет, потому что Angular не загружает компилятор в AOT-Build.
Я читал о некоторых обходных путях, которые больше не работают в Angular5 +. У вас есть какие-то решения этой проблемы?
С уважением
export class RuntimeCompilerComponent { template: string = ""; @ViewChild('dynamicComponent', { read: ViewContainerRef }) container: ViewContainerRef; constructor(private compiler: Compiler) { } //Ruft die addComponent Methode auf createComponent() { this.addComponent(this.template, null); } // Komponente wird dynamisch erzeugt und geladen // Sollten sich die properties ändern muss ggf. die Changedetection manuell aufgerufen werden. private addComponent(template: string, properties: any = {}) { @Component({ template }) class TemplateComponent { } @NgModule({ imports: [ AppModule, CommonModule, ReactiveFormsModule, FormsModule, BrowserModule, ], declarations: [TemplateComponent] }) class TemplateModule { } const mod = this.compiler.compileModuleAndAllComponentsSync(TemplateModule); const factory = mod.componentFactories.find((comp) => comp.componentType === TemplateComponent ); const component = this.container.createComponent(factory); Object.assign(component.instance, properties); } }