Angular 2 - Маршрутизация от первого дочернего компонента ко второму дочернему компоненту родительского компонента

Я пытаюсь выполнить простую маршрутизацию от дочернего компонента к другому дочернему компоненту родительского компонента. router-outlet определяется в родительском компоненте. Вот как я пытаюсь этого добиться:

parent.ts

import {Component} from 'angular2/core';
import {RouteConfig,ROUTER_PROVIDERS,ROUTER_DIRECTIVES} from 'angular2/router';
import {bootstrap} from 'angular2/platform/browser';
import {FirstChildCmp} from "./first_child";
import {SecondChildCmp} from "./second_child";

@Component({
  selector: 'app',
  template: `
  <router-outlet></router-outlet>
  `,
  directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
  {path: '/first_child', component: FirstChildCmp, name: 'FirstChild', useAsDefault:true},
  {path: '/second_child',component: SecondChildCmp, name:'SecondChild'}
])
export class ParentCmp{}

bootstrap(ParentCmp,[
  ROUTER_PROVIDERS
]);

first_child.ts

import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES} from 'angular2/router';

@Component({
  selector: 'child',
  template: `
  <a [routerLink]="[SecondChild]">Go to second child</a>
  `,
  directives: [ROUTER_DIRECTIVES]
})
export class FirstChildCmp{}

second_child.ts

import {Component} from 'angular2/core';

@Component({
  selector: 'child',
  template: `
  This is second child.
  `
})
export class SecondChildCmp{}

Когда пользователь нажимает Go to second child, я хочу показать шаблон второго дочернего компонента. Но я получаю следующую ошибку:

Компонент FirstChildCmp не имеет конфигурации маршрута.

Но я не хочу определять конфигурацию в FirstChildCmp, вместо этого я хочу использовать родительскую конфигурацию. Я воспроизвел проблему на плунжере здесь


person Eesa    schedule 27.04.2016    source источник


Ответы (1)


FirstChild.ts Plnkr

@Component({
  selector: 'child',
  template: `
  <a [routerLink]="['SecondChild']">Go to second child</a>
  `,
  directives: [ROUTER_DIRECTIVES]
})
export class FirstChildCmp{}

В ['SecondChild'] вы пропустили цитаты. Это должна быть строка.

person Ankit Singh    schedule 27.04.2016