2016-03-10 2 views
0

Я следующие настройки моего приложения:маршрутизации вопрос корень родительского

@RouteConfig([ 
    {path: '/', redirectTo: ['Login']}, 
    {path: '/login', name: 'Login', component: LoginComponent}, 
    {path: '/dashboard', name: 'Dashboard', component: DashboardComponent}, 
    {path: '/gamers/...', name:'Gamers', component: GamersComponent} 
]) 

В моей GamersComponent у меня есть:

@Component({ 
    selector:'gamers', 
    templateUrl: 'app/gamers/gamers.html', 
    directives:[] 
}) 

@RouteConfig([ 
    {path: '/addGamer', name: 'AddGamer', component: AddGamerComponent}, 
{path: '/editGamer', name: 'EditGamer', component: EditGamerComponent} 
]) 

export class GamersController{ 
    constructor(){ 
    } 
} 

и мой gamers.html:

<h1>Gamers</h1> 
<a href="#" [routerLink]="['AddGamer']">Add Gamer</a> 
<a href="#" [routerLink]="['EditGamer']">Edit Gamer</a> 
<gamers></gamers> 
<router-outlet></router-outlet> 

Мой вопрос:

Как создать ссылку , который перенаправит меня на «Gamers», чтобы я мог видеть содержимое <gamers></gamers> без какого-либо его дочернего элемента в <router-outlet>?

До сих пор, когда я перенаправление Gamers, у меня есть следующее сообщение об ошибке:

EXCEPTION: Link "["Gamers"]" does not resolve to a terminal instruction. in [['Gamers'] in [email protected]:20] 

ответ

0

Вы можете использовать routerLink так:

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

Таким образом, вы будете использовать маршруты, настроенные в корневой маршрутизатор вместо тех, которые находятся в текущем маршруте (дочерний).

Редактировать

Вам нужно определить маршрут по умолчанию подадреса для геймеров:

@Component({ 
    selector:'gamers', 
    template: ` 
    <h1>Gamers</h1> 
    <a [routerLink]="['AddGamer']">Add Gamer</a> 
    <a [routerLink]="['EditGamer']">Edit Gamer</a> 
    <!--gamers></gamers--> 
    <router-outlet></router-outlet> 
    `, 
    directives:[ROUTER_DIRECTIVES] 
}) 

@RouteConfig([ 
    {path: '/', name: 'GamersHome', component: GamersHomeComponent, useAsDefault: true}, 
    {path: '/addGamer', name: 'AddGamer', component: AddGamerComponent}, 
    {path: '/editGamer', name: 'EditGamer', component: EditGamerComponent} 
]) 
export class GamersComponent { 
    constructor(){ 
    } 
} 

Посмотреть этот plunkr: https://plnkr.co/edit/rQluijSidf4tF1LZgKsG?p=preview

+0

все еще бросает мне ту же ошибку – uksz

+0

странно, что вы используете ' геймеров' непосредственно в 'GamersComponent' ... –

+0

Кажется, вам нужно определить по умолчанию маршрут для геймеров. Я обновил свой ответ и предоставил plunkr. Не стесняйтесь сказать, что это то, что вы ожидаете от поведения ... –

Смежные вопросы