在运行时

时间:2017-11-30 13:49:46

标签: javascript angular typescript ionic-framework ionic3

我有一个项目需要在运行时从远程服务器添加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。

0 个答案:

没有答案