我在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
我可以在这个
中得到一些帮助答案 0 :(得分:1)
如果您在--prod模式下运行应用程序,它将默认为AOT,它不提供编译器。
我认为Angular团队并不鼓励在运行时使用编译器的模式。