簡體   English   中英

沒有路由器的Angular延遲加載模塊

[英]Angular lazy loading module without router

是否可以從通過 npm 鏈接與其他模塊鏈接的急切加載的“共享”模塊中延遲加載模塊? 我收到此錯誤: ./src/$$_lazy_route_resource 惰性命名空間對象模塊中的錯誤未找到:錯誤:無法解析 'C:project/shared/src/lazy module/lazy.module.ngfactory.js' in ' C:project\\core\\src\\$$_lazy_route_resource'。

-project 
        - shared (linked) (eagerly loaded)
                - lazy module
        - core (link) (main app module)

這是我的 angular.json(位於核心) "lazyModules": ["../shared/src/lazy module/lazy.module"],

test.component.ts

constructor(public injector: Injector, private loader: NgModuleFactoryLoader) { }

private moduleRef: NgModuleRef<any>;

load(): Promise<void> {
    if (this.moduleRef) {
        return Promise.resolve();
    }

    const path = 'src/lazy-module/lazy.module#LazyModule';

    return this.loader
        .load(path)
        .then(moduleFactory => {
            this.moduleRef = moduleFactory.create(this.injector).instance;
            console.warn('moduleRef', this.moduleRef);
        })
        .catch(err => {
            console.error('error loading module', err);
        });
}

ngOnInit() {
    this.load();
}

不,目前這是不可能的,請查看關於 github 上現有功能請求的 @ritaj 評論: https : //github.com/angular/angular/issues/18093

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM