我有一个项目需要在运行时从远程服务器添加Ionic Page Component。首先,我需要先从typescript中转换组件并部署到服务器。之后,在按钮单击事件中,我需要下载组件并将其注册为离子页面。如果我可以从typescript文件中获取生成js的帮助,那将非常有用。关于js生成的主要问题是,我正在使用webpack和webpack将所有导入更改为自己的函数调用,并且其中包含随机(?)数字。 第二个问题是我无法在运行时获取并注册页面。我正在使用延迟加载但无法找到注册该页面的方法。我尝试了以下代码但没有工作:
let injector = ReflectiveInjector
.fromResolvedProviders([], this.vcRef.parentInjector);
// 1. Create module loader
let loader = new SystemJsNgModuleLoader(this.compiler);
loader.load("http://example-website.com/test-module")
.then((nmf:NgModuleFactory<any>) => {
// 2. create NgModuleRef
let ngmRef = nmf.create(injector);
let page = ngmRef.instance.page;
// 3. Create component factory
let cmpFactory = ngmRef
.componentFactoryResolver
.resolveComponentFactory(page);
// 4. Create the component
let componentRef = this.span.createComponent(cmpFactory, 0, injector,[]);
// 5. Init the component name field.
componentRef.instance.name = "TestPage";
// 6. Refresh the component area.
componentRef.changeDetectorRef.detectChanges();
componentRef.onDestroy(()=> {
componentRef.changeDetectorRef.detach();
});
});
我使用的是离子3,角度为5,打字稿为2.4.2。