2016-10-13 17 views
1

私は、レイジーロードを使用してロードするホームページとログインの2つのコンポーネントを含むホームモジュールを持つ簡単なWebページを開発しています...遅延ロードされたモジュール内の2つの遅延ロードモジュール

これは、これは私のホームモジュールである私のApp-ルーティングモジュール

const routes: Routes = [ 
    { path: '', redirectTo: 'home', pathMatch: 'full' }, 
    { path: 'home', loadChildren: 'app/home/home.module#HomeModule' }, 
    { path: 'main', loadChildren: 'app/main/main.module#MainModule' } 
]; 

@NgModule({ 
    imports: [ 
    HomeRoutingModule, 
    RouterModule.forRoot(routes) 
    ], 
    exports: [RouterModule], 
    providers: [] 
}) 
export class GESFWRoutingModule { } 

で期待通り...

const routes = [ 
    { path: 'home', component: HomeComponent }, 
    { path: 'login', component: LoginComponent } 
] 

@NgModule({ 
    imports: [ 
    CommonModule, 
    RouterModule.forChild(routes), 
    ReactiveFormsModule 
    ], 
    declarations: [ 
    HomeComponent, 
    LoginComponent 
    ], 
    providers: [ 
    AuthService 
    ] 
}) 
export class HomeModule { } 

この部分は、うまく働いています。私は...私がしようとしているメインモジュールに行くとき何を私は問題を抱えていることである...私のclienteモジュールここClienteモジュールと

const routes: Routes = [ 
    { path: '', redirectTo: 'main', pathMatch: 'full', children: [ 
    { path: 'clientes', loadChildren: 'app/clientes/clientes.module#ClientesModule' } 
    ]}, 
]; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    MainRoutingModule, 
    RouterModule.forChild(routes) 
    ], 
    declarations: [ 
    MainComponent, 
    HeaderComponent, 
    ], 
}) 
export class MainModule { } 

レイジーロード

const routes: Routes = [ 
    { path: '', component: ClientesComponent } 
]; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    RouterModule.forChild(routes) 
    ], 
    declarations: [ 
    ClientesComponent, 
    ClientesOperacoesComponent, 
    SearchTableComponent 
    ], 
    providers: [ 
    MainService 
    ] 
}) 
export class ClientesModule { } 

/main/clientes 'にアクセスしようとするまではすべて動作します。どのルートにも一致することはできません: 'main/clientes'。今、私はこれを解決するために複数の方法を試しましたが、いつも同じ問題です。私のロジックにエラーが見つかったら、本当に感謝します。

ありがとうございます!

答えて

0

イムここにあなたのメインモジュールのルートを見て:おそらく

const routes: Routes = [ 
    { path: '', redirectTo: 'main', pathMatch: 'full' }, 
    { path: 'clientes', loadChildren:'app/clientes/clientes.module#ClientesModule'} 
]; 
0

でなければなりません

const routes: Routes = [ 
    { path: '', redirectTo: 'main', pathMatch: 'full', children: [ 
    { path: 'clientes', loadChildren: 'app/clientes/clientes.module#ClientesModule' } 
    ]}, 
]; 

をこんにちは、私はあなたが以下のようにメインルートの構造を変更すべきだと思う:

const routes: Routes = [ 
    { 
    path: '', 
    children [ 
     { 
     path: 'clientes', 
     loadChildren:'app/clientes/clientes.module#ClientesModule' 
     } 
    ] 
    } 
]; 

既にロードされているときに同じモジュールにリダイレクトするべきではないと思います循環ルーティングを使用して状況に入る。

関連する問題