1

如果我使用 AOT 编译,将无法进行动态编译。所以我需要将编译器加载到浏览器中。那么我该如何加载呢?如果我使用

import { JitCompilerFactory } from '@angular/compiler';

但是,导入后JitCompilerFactory我收到以下错误:

“在“角度/编译器”中找不到导出“JitCompilerFactory”

那么我现在需要从中导入它以'angular/platform-browser-dynamic'进行动态编译吗?

4

1 回答 1

6

你需要像这样导入JitCompilerFactory到你的app.module.ts 中

import {Compiler, COMPILER_OPTIONS, CompilerFactory} from '@angular/core';
import {JitCompilerFactory} from '@angular/platform-browser-dynamic';
export function createCompiler(compilerFactory: CompilerFactory) {
  return compilerFactory.createCompiler();
}



@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule
  ],
  providers: [
    {provide: COMPILER_OPTIONS, useValue: {}, multi: true},
    {provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS]},
    {provide: Compiler, useFactory: createCompiler, deps: [CompilerFactory]}
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

在这里,我创建了一个完整的带有动态组件的StackBlitz 演示,如果你想在那里玩它。

于 2018-07-30T00:49:17.660 回答