У меня есть левый навигационный компонент, который импортируется в мой основной AppComponent. То, что я пытаюсь реализовать, - это возможность щелкнуть ссылку в левом навигаторе и загрузить ее DataComponent в маршрутизатор-выход родительского AppComponent.Как я могу настроить маршрутизатор-выход из дочернего компонента?
Мой родитель AppComponent выглядит следующим образом:
import { LeftNavComponent } from 'app/left-nav/left-nav.component';
import { DataComponent } from 'app/data/data.component';
@Component({
selector: 'main',
template: '<left-nav></left-nav><router-outlet></router-outlet>',
directives: [ROUTER_DIRECTIVES, LeftNavComponent]
})
@RouteConfig([
{path:'/data', name: 'Data', component: DataComponent}
])
Мой ребенок LeftNavComponent который выглядит следующим образом:
@Component({
selector: 'left-nav',
directives: [ ROUTER_DIRECTIVES ],
providers: [ ROUTER_PROVIDERS ],
template: '<a [routerLink]="[ 'Data' ]">Show Me Data</a>'
})
и DataComponent я пытаюсь загрузить в маршрутизатор-выходе выглядит следующим образом :
@Component({
selector: 'data',
templateUrl: 'This is where the data will be'
})
Когда я нажимаю на ссылку, url изменяется на/данные, но кажется, что DataComponent фактически не загружен, потому что текст «Это то, где данные будут», не отображается.
Я проверил, что RouteConfig работает правильно, поскольку текст появляется, если я помещаю ссылку маршрутизатора в шаблон AppComponent, поэтому проблема заключается в том, что ссылка на маршрутизатор находится в дочернем компоненте.
Любая помощь была бы потрясающей.
Спасибо за ответ. Я пробовал оба, но ни один из них не работает./Данные перемещаются по правому URL-адресу, но не загружают компонент. ../Data выбрасывает это исключение: Ссылка "[" ../Data "]" имеет слишком много "../" сегментов. – amuramoto
'[ROUTER_PROVIDERS],' следует добавлять только в 'bootstrap' ** или ** в корневой компонент' AppComponent', но ** никогда ** ни на какой другой компонент. –
Были и другие проблемы в вашем коде. 'templateUrl' вместо' template' (возможно, только для копирования-вставки). '' 'вокруг шаблона' left-nav' конфликтует с '' 'around' 'data''. Я изменил внешнюю сторону на обратную сторону (возможно, это тоже проблема с копией). [** Рабочий Plunker **] (https://plnkr.co/edit/9ljkpB?p=preview) –