最近利用angular4开发一个项目,由于画面中的显示都是从数据表中读取,通过设置显示FLAG和显示顺序对画面布局按既定规则控制的,
所以必须利用动态编译实现。
方法如下,
1,获取JitCompiler
const injector = ReflectiveInjector.resolveAndCreate(COMPILER_PROVIDERS, parentInjector);
const compiler = this.injector.get(JitCompiler) as JitCompiler;
2,生成动态组件和模块
3,动态模块中的Import模块必须把metadata信息也编译进去,不然会出现No NgModule metadata found for 'e'错误。
4,生成ComponentFactory后,别忘记清楚编译器Cache中的动态模块和组件,否则一直存在。