9 votes

Chargement paresseux du module Angular sans routeur

Est-il possible de charger de manière paresseuse un module depuis le module "partagé" chargé de manière anticipée qui est lié à d'autres modules via npm link? Je reçois cette erreur : ERREUR dans ./src/$$_lazy_route_resource espace de noms paresseux Module introuvable : Erreur : Impossible de résoudre 'C:projet/shared/src/lazy module/lazy.module.ngfactory.js' dans 'C:projet\core\src\$$_lazy_route_resource'.

-projet 
        - partagé (lié) (chargé de manière anticipée)
                - module paresseux
        - core (lien) (module d'application principal)

Voici mon angular.json (situé dans core) "lazyModules": ["../shared/src/lazy module/lazy.module"],

test.component.ts

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

private moduleRef: NgModuleRef;

load(): Promise {
    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('erreur lors du chargement du module', err);
        });
}

ngOnInit() {
    this.load();
}

0voto

satanTime Points 8307

Non, actuellement c'est impossible, veuillez vérifier le commentaire de @ritaj concernant une demande de fonctionnalité existante sur github : https://github.com/angular/angular/issues/18093

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X