在角网站上有新的api
SystemJsNgModuleLoader.
剂量任何人都知道如何使用这个API在应用程序中加载动态模块?
最佳答案 我知道你会找到解决方案,但作为其他人的参考我正在提供解决方案.代码已得到很好的评论,并且很容易理解.
createComponent(fileName, componentName){
let injector = ReflectiveInjector.fromResolvedProviders([], this.vcRef.parentInjector);
// 1. Create module loader
let loader = new SystemJsNgModuleLoader(this.compiler);
loader.load(fileName).then((nmf:NgModuleFactory<any>)=>{
// 2. create NgModuleRef
let ngmRef = nmf.create(injector);
// 3. Create component factory
let cmpFactory = ngmRef.componentFactoryResolver.resolveComponentFactory( componentName );
// 4. Create the component
let componentRef = this.span.createComponent(cmpFactory,0,injector,[]);
// 5. Init the component name field.
componentRef.instance.name = "Some Name";
// 6. Refresh the component area.
componentRef.changeDetectorRef.detectChanges();
componentRef.onDestroy(()=> {
componentRef.changeDetectorRef.detach();
});
});
}
通过使用上述功能,我们可以从任何来源注入模块.如需进一步,请参阅this.