2017-07-12 3 views
1

J'apprends l'Ionic 3, l'Angular 4 et le modèle de design ngrx.Comment séparer app.module en fichiers plus petits?

J'ai une application de travail, mais avec mon app.module.ts qui ressemble à ceci (en omettant les importations):

@NgModule({ 
    declarations: [MyApp, ModelOnePage, ModelTwoPage ], 
    imports: [ 
     IonicModule.forRoot(MyApp), 
     StoreModule.provideStore({ modelOne: ModelOneReducer, modelTwo: ModelTwoReducer }), 
     EffectsModule.run(ModelOneEffects), 
     EffectsModule.run(ModelTwoEffects), 
    ], 
    bootstrap [IonicApp], 
    entryComponents: [MyApp, ModelOnePage, ModelTwoPage ], 
    providers: [ModelOneActions, ModelOneService, 
       ModelTwoActions, ModelTwoService, 'andSomeIonicStuff'] 
}) 
export class AppModule { } 

Cependant, je voudrais avoir des fichiers .module séparés tels qu'un modelOne.module.ts:

@NgModule({ 
    declarations: [ ModelOnePage ], 
    imports: [ 
     IonicPageModule.forChield(ModelOnePage), 
     StoreModule.provideStore({ modelOne: ModelOneReducer }), 
     EffectsModule.run(ModelOneEffects), 
    ], 
    //bootstrap [?], 
    entryComponents: [ ModelOnePage ], 
    providers: [ModelOneActions, ModelOneService ] 
}) 
export class ModelOneModule { } 

Et ainsi de suite, avec chaque modèle/page ayant ses propres. Je demande parce que d'avoir un fichier gigantesque avec tout est clairement horrible pour la structure. Gérer également les conflits git et fusionner lorsque plusieurs personnes travaillent dans le même projet en faisant des parties différentes et avoir à modifier le même fichier n'est pas idéal. Jusqu'à présent, j'ai eu ce travail pour les pages bits, l'implémentation de la stratégie de chargement paresseux, mais les importations pour StoreModule et EffectsModule et les fournisseurs ne fonctionnent pas.

Je voudrais savoir s'il existe un moyen d'accomplir ce que j'essaie de faire. S'il n'y en a pas, alors pourquoi? Quelle partie de la pile est à faute? (NGRX-plugin, angular4, ionic3 ...)

Répondre

0

Juste séparer vos app.module.ts, importer nouveau aux main.ts et l'amorcer

De plus, cette question mai vous apporte de nouvelles idées

+0

Merci pour la perspicacité, je n'étais en effet pas au courant du fichier main.ts, mais quand j'ai testé j'ai eu le suivant 'Erreur: Uncaught (en promesse): Erreur: Aucun fournisseur pour ModelOneService!' – Eduardo