2017-02-28 105 views
0

我的應用模塊如何避免多次聲明中angularoutes

/* dependency Modules */ 
import { NgModule } from '@angular/core' 

import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule } from '@angular/http'; 

/* router configuration */ 
import { AppRoutingModule } from './app.routes'; 

/* components */ 
import { AppComponent } from './app.component'; 

/* project Modules */ 
import { subscriptionModule } from '../components/subscription/subscription.module'; 

/* app declaration */ 
@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    ReactiveFormsModule, 
    HttpModule, 
    AppRoutingModule, 
    subscriptionModule, 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { 

} 

我的路由配置

/* dependency modules */ 
import { NgModule } from '@angular/core' 
import { Routes } from '@angular/router'; 
import { RouterModule } from '@angular/router'; 

/* subscription */ 
/*components */ 
import { subscriptionComponent } from '../components/subscription/subscription.component'; 
import { subscriptionMenuComponent } from './../components/subscription/includes/menu/subscriptionMenu.component'; 
import { subscriptionSubscribeComponent } from './../components/subscription/includes/subscribe/subscriptionSubscribe.component'; 

export const rootRouterConfig: Routes = [ 
    { path: '', redirectTo: 'subscription', pathMatch: 'full' }, 
    { 
    path: 'subscription', component: subscriptionComponent, 
    children: [ 
     { path: '', component: subscriptionMenuComponent }, 
     { path: 'subscribe', component: subscriptionSubscribeComponent }, 
    ] 
    }, 
]; 

@NgModule({ 
    imports: [ 
    RouterModule.forRoot(rootRouterConfig, { useHash: true }), 
    ], 
    exports: [ 
    RouterModule 
    ] 
}) 
export class AppRoutingModule { } 

在我的訂閱模塊

/* dependency modules */ 
import { NgModule } from '@angular/core'; 
import { RouterModule } from '@angular/router'; 

/* components */ 
import { subscriptionComponent } from './subscription.component'; 
import { subscriptionHeaderComponent } from './header/subscriptionHeader.component'; 
import { subscriptionMenuComponent } from './includes/menu/subscriptionMenu.component'; 
import { subscriptionSubscribeComponent } from './includes/subscribe/subscriptionSubscribe.component'; 


@NgModule({ 
    imports: [ 
    RouterModule 
    ], 
    declarations: [ 
    subscriptionComponent, 
    subscriptionHeaderComponent, 
    subscriptionMenuComponent, 
    subscriptionSubscribeComponent 
    ] 
}) 

export class subscriptionModule { } 

在我的代碼,我已經進口元件訂閱模塊,我必須重新導入它的路由器配置。我對角2完全陌生,有人可以告訴我,我所做的是正確的。頁面加載正確,但有沒有可能減少進口。

回答

0
  • ngModule您必須導入您正在使用的模塊

  • 中的所有組件,但你也必須導入所有這些都在路由中使用這些組件。

  • 但是在lazzy加載的情況下,不需要導入路由文件和模塊中的組件。

+0

是的,好的。在訂閱模塊中,我已導入訂閱的所有組件。爲什麼我不能直接導入該模塊,而不是組件?任何方式來做到這一點。 @Pardeep Jain –