2016-09-11 4 views
0

Я уже немного поработал с RC6, надеясь, что окончательная маршрутизация к вложенным дочерним компонентам будет работать из коробки. Ну, нет такой удачи. Эффект, который я вижу прямо сейчас, заключается в том, что redirectTo для маршрута по умолчанию просто игнорируется, и вместо этого, Угловой идет прямо к первому дочернему компоненту.Угловой 2 Маршрутизатор пропускает redirectTo и вместо этого использует дочерний маршрут

import { Route, RouterModule } from '@angular/router'; 
import { LandingPageComponent } from 'src/landing-page.component'; 
import { DepartmentModule } from 'src/department/department.module'; 

const routes: Route[] = [ 
    { path: '', redirectTo: 'landing-page', pathMatch: 'full' }, 
    { path: 'landing-page', component: LandingPageComponent }, 
    { path: 'department', loadChildren:() => DepartmentModule } 
]; 

export const appRoutingProviders: any[] = []; 
export const routing = RouterModule.forRoot(routes, {enableTracing:true}); 

Вы должны думать, не входя не URL бы меня landing-page, но нет, Угловые кирки department по причинам, которые находятся вне меня.

С этого момента все работает, как и ожидалось, я могу затем перейти к детскому маршруту

import { Route, RouterModule } from '@angular/router'; 
import { DepartmentComponent } from './department.component'; 
import { DepartmentDetailsComponent } from './department-details.component'; 

const departmentRoutes: Route[] = [ 
    { path: '', component: DepartmentComponent }, 
    { path: ':id', component: DepartmentDetailsComponent } 
]; 

export const departmentRouting = RouterModule.forChild(departmentRoutes); 

Странная вещь здесь, хотя это, что мне нужно

<a [routerLink]="['../..']"> 

перемещаться 1 уровень резервного копирования , Возможно, обе проблемы связаны.

Есть ли у кого-нибудь идеи, что мне не хватает? plnkr можно найти здесь.

+0

Что такое предполагаемое поведение ? – micronyks

+0

Загружает ли «приземляющую страницу» первую, у которой есть кнопка (с перенаправлением на уровень 45)? – micronyks

+0

Чтобы попасть на «приземляющуюся страницу», если я не предоставил путь, конечно. –

ответ

4

Вам просто нужно удалить DepartmentModule из импорта (из @NgModule AppMoule (в)), как показано ниже,

imports: [ BrowserModule, MdButtonModule, 
      RouterModule, routing]   //<---removed DepartmentModule declaration 

работает: http://plnkr.co/edit/qoZ3YCwSz0mQ5o974Dt0?p=preview

+1

И он исправляет '[routerLink]' также, потрясающе! –

+0

Обязательно не загружайте ленивый модуль загрузки. Они предназначены для ленивой загрузки. Angular2 позаботится о себе. – micronyks