2017-02-07 10 views
1

は、私のアプリモジュールiはサブモジュール私はCLIと角度2でアプリを作成してい

を作成したいので、今あまりにも長い間起こっている角度のCLIでサブモジュールを作成する方法

私のサブモジュールは

import { NgModule } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { CommonModule } from '@angular/common'; 
import { ProjectComponent } from './project.component'; 
import { ProjectListingComponent } from './project-listing/project-listing.component'; 
import { ProjectCreateUpdateComponent } from './project-create-update/project-create-update.component'; 


// routing set for project module 

const routes: Routes = [ 
    {path:'project/add' , component:ProjectCreateUpdateComponent}, 
    {path:'project/:id/edit' , component:ProjectCreateUpdateComponent}, 
    {path:'project-listing' ,component:ProjectListingComponent}, 
]; 

@NgModule({ 
    imports: [RouterModule.forChild(routes)], 
    exports: [RouterModule], 
    providers: [] 
}) 
export class ProjectRoutingModule { } 


// Main module for project 
@NgModule({ 
    imports: [ 
    CommonModule, 
    ProjectRoutingModule 
    ], 
    declarations: [ProjectComponent, ProjectListingComponent, ProjectCreateUpdateComponent ] 
}) 
export class ProjectModule { } 
です

>メインモジュールは

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { DatePipe } from '@angular/common'; 
//import { ViewContainerRef} from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { routing } from './app.routing'; 
import { ReactiveFormsModule } from '@angular/forms'; 

import { MaterialModule } from '@angular/material'; 

//custom modules 
import {ProjectModule} from './project_module/project.module'; 

import { HomeComponent } from './home/home.component'; 
... 
@NgModule({ 
    declarations: [ 
    AppComponent, 
    GradeComponent, 
    GradeListingComponent, 
    HomeComponent, 
    GradeComponent, 
    ... 

    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    routing,  
    MaterialModule.forRoot(), 
    ReactiveFormsModule,   
    ProjectModule 

    ], 
    providers: [ 
    NotificationsService, 
    DatePipe, 
    GradeService, 
    ...   
    ], 
    exports: [ 
     ConfirmDialogComponent, 
    ], 
    entryComponents: [ 
    logsShow 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

BでありますUTの問題が

答えて

2
をルーティングする上でも問題に直面して..

がこれを取得する方法は何..です材料モジュール値 と私はapp.moduleでの使用を持っている他のモジュール/プラグインにアクセスすることはできません、私のサブモジュールを来ています

これは完全に正常です。サブモジュールからMaterialModuleにアクセスする場合は、このサブモジュールにMaterialModuleと宣言する必要があります。

これは、すべての共有モジュールとかなりラメだろう...

これを解決するための基本的な方法は、ちょうどあなたがあなたの全体のアプリで使いたいSharedModule、インポート/エクスポートのすべてを作成することです。

たとえば、ここに私の現在のプロジェクトのshared.module.tsファイルがあります:

export const modules = [ 
    CommonModule, 
    ReactiveFormsModule, 
    HttpModule, 
    RouterModule, 
    MaterialModule, 
    FlexLayoutModule, 
    StoreModule, 
    StoreDevtoolsModule, 
    TranslateModule, 
    PrettyJsonModule, 
    SimpleNotificationsModule 
]; 

export const declarations = [GenerateIconComponent, ColorSearchedLettersDirective]; 

@NgModule({ 
    imports: modules, 
    exports: [...modules, ...declarations], 
    declarations 
}) 
export class SharedModule { } 

その後、私はちょうど内のすべてのサブモジュールをインポートします。

https://angular.io/docs/ts/latest/guide/ngmodule.html#!#shared-module

+0

ありがとうを、そして、どのようにメインルーティングとルーティングサブモジュールを処理するために:

あなたはあまりにも公式のドキュメントで見てみる必要がありますか? – Ash

関連する問題