通用错误:未加载运行时编译器,

时间:2018-05-13 15:17:27

标签: angular angular-cli

我在VSCode编辑器中创建一个指令,它在指定给定路径时加载一个html页面:

以下是相同的代码:

@Directive({
 selector: 'html-outlet'
})

export class HtmlOutlet {
 @Input() html: string;

 constructor(private vcRef: ViewContainerRef, private compiler: Compiler) { 
}

ngOnChanges() {
const html = this.html;
if (!html) return;

@Component({
    selector: 'dynamic-comp',
    templateUrl: html
})
class DynamicHtmlComponent { };

@NgModule({
    imports: [CommonModule],
    declarations: [DynamicHtmlComponent]
})
class DynamicHtmlModule { }

this.compiler.compileModuleAndAllComponentsAsync(DynamicHtmlModule)
    .then(factory => {
        const compFactory = factory.componentFactories.find(x => x.componentType === DynamicHtmlComponent);
        const cmpRef = this.vcRef.createComponent(compFactory, 0);
    });}}

此代码用于完美工作,直到我将应用程序升级到角度6。 我现在得到以下错误:

未加载运行时编译器错误堆栈跟踪:错误:未加载运行时编译器     在Le(main.00612d315fe86075b5fb.js:1)     at t.compileModuleAndAllComponentsAsync

我可以在这个

中得到一些帮助

1 个答案:

答案 0 :(得分:1)

如果您在--prod模式下运行应用程序,它将默认为AOT,它不提供编译器。

我认为Angular团队并不鼓励在运行时使用编译器的模式。