2017-02-05 4 views
0

J'ai un projet angulaire 2 avec 3 modules. AppModule, module partagé et un module chargé paresseux. Je veux que les deux modules (paresseux chargés et App) importent le module partagé afin qu'ils puissent tous les deux utiliser les tuyaux fournis par le module partagé. Est-ce possible?chargement paresseux angulaire 2 module

J'ai essayé mais j'ai des erreurs me disant que le module partagé a déjà été chargé. Et pour le charger uniquement dans l'AppModule, mais le module chargé paresseusement n'a pas accès aux éléments fournis.

Ai-je mal compris les modules angulaires?

Répondre

0

oui, vous pouvez utiliser la part NgModule pour les paresseux et le module non paresseux

app/shared/shared.module.ts

import { NgModule } from '@angular/core'; 
import { MustSharedService } from './must-shared.service'; 

@NgModule({ 
    providers: [MustSharedService] 
}) 
export class SharedModule {} 

app/app.module.ts

import { SharedModule } from './shared/shared.module'; 

@NgModule({ 
    imports: [ 
    SharedModule, 
    ... 
    ], 
}) 
export class AppModule {} 

app/paresseux/lazy.module.tsÀ partir de là, tout service, par exemple, que vous fournissez dans SharedModule, sera disponible dans les deux modules 2.

s'il vous plaît voir cette démo https://plnkr.co/edit/L2ypUQZiltSPXnLlxBoa?p=preview

+0

Je voudrais faire référence à [cette documentation] (https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q- why-bad) pour signaler que c'est probablement une mauvaise idée de fournir un service dans un SharedModule. En faisant cela, votre AppModule et LazyModule auront différentes instances de MustSharedService, ce qui n'est probablement pas ce que vous voulez. – Stephanie