2016-12-13 3 views
0

У меня есть модуль корня и дочерний модуль в угловом2, оба имеют свои собственные маршруты. В модуле ребенка я настройка RouterModule вУгловые2 дочерние маршруты

RouterModule.forChild(ROUTES) 

В модуле корневого (родительского), я настройка RouterModule в

RouterModule.forRoot(ROUTES) 

Я использую те же маршруты имена как в детстве и корень

У ребенка

export const ROUTES: Routes = [ 
    { path: '',  component: HomeComponent }, //outputs I am child 
    { path: 'home', component: HomeComponent } 
]; 

В корне (родитель)

export const ROUTES: Routes = [ 
    { path: '',  component: HomeComponent }, //outputs I am parent 
    { path: 'home', component: HomeComponent } 
]; 

Я импортировать модуль ребенка в корневом модуле

import ..... 
import {AppModule as ChildModule} from 'child-module/src/app/app.module'; 


@NgModule({ 
    bootstrap: [ AppComponent ], 
    declarations: [ 
    AppComponent, 
    HomeComponent 
    ], 
    imports: [ // import Angular's modules 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    ChildModule, 
    RouterModule.forRoot(ROUTES, { useHash: true, preloadingStrategy: PreloadAllModules }) 

    ], 
    providers: [ 
    ] 
}) 
export class AppModule { 

} 

Когда я загружаю мой компонент (я имею в виду корневой модуля), маршрут по умолчанию всегда будет модуль ребенка вместо rootmodule, то есть его печать «Я ребенок», где, как я ожидаю, «я родитель», дочерний маршрут должен загружаться только при загрузке, как я могу перенаправить маршрут по умолчанию для корневого (родительского) модуля вместо дочернего модуля?

+0

Вы считаете, что добавляете дочерний путь, который будет лениво загружаться в родительском маршруте, что-то вроде '{path: child, loadChildren: 'path to child module'}'? Вы можете прочитать больше об этом [здесь] (https://angular.io/docs/ts/latest/guide/router.html) –

+0

@Madhu Ranjan, проблема в том, что маршруты по умолчанию (по умолчанию) загружаются по умолчанию, даже без настройки который я хочу избежать –

+0

Вы настроили дочерний маршрут в дочернем модуле? Если да, то при импорте дочернего модуля в модуле приложения будут добавлены дочерние маршруты. –

ответ

1

Я думаю, что это ответ на ваш вопрос:

маршрутизатора углового совпадает маршруты сверху вниз. Первый маршрут, который совпадает с первым, к которому идет маршрутизатор. Вы загружаете маршруты ChildModule до маршрутов RootModule, и это означает, что все эти маршруты имеют приоритет над маршрутами RootModule. При переходе на '' маршрутизатор сначала проверит маршруты ChildModule, найдет матч и отвезет вас туда. Если вы поменяете местами ChildModule и RootModule в заявлении imports, то маршруты RootModule будут всегда перемещаться.

Узнать больше об https://angular.io/docs/ts/latest/guide/router.html.

+0

Неповторимо, это не сработало для меня, попробовал как «Ребенок перед маршрутизатором», так и «Маршрутизатор перед ребенком», не работал. –