2016-11-12 17 views
1

У меня есть the following plunker, что не работает. Для того, чтобы заставить его работать, я могу закомментируйте ...Невозможно сопоставить маршруты. Сегмент URL: '': при попытке использовать дочерние маршруты и Ng2

RouterModule.forRoot([ 
     { 
      path: "", 
      component: TestComponent, 
      children: [ 
       // { 
       // path:"", 
       // outlet: "other", 
       // component: TestComponent 
       // } 
      ] 
     } 
]) 

Если я не делаю, что я получаю ...

EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: '' 
Error: Cannot match any routes. URL Segment: '' 

Как добавить дочерний маршрут?

ответ

1

Маршрутизатор останавливается после согласования первого пути, который он выполняет в родительском маршруте. Я нашел, что лучше использовать отдельный модуль маршрутизации для каждого выхода маршрутизатора. При этом вы получаете уродливый (other:route) для вспомогательного маршрута в вашем URL-адресе. По общему признанию, я нашел некоторые ограничения на использование вспомогательных маршрутов.

2

Вы должны указать разные имена путей, пока не будете использовать pathMatch: 'full'. Forked.

Подробнее об объекте в Angular Router: Empty Paths, Componentless Routes, and Redirects.

+0

Возможно, я не понимаю этого, но хочу показать не только один. Поэтому я хочу показать родителя и ребенка. – Jackie

+0

Действительно, вы можете увидеть мой plnkr –

+0

Мне, должно быть, что-то не хватает, похоже, что у него есть только ребенок, если вы переходите на '#/test' или что-то еще, и я не вижу ссылку, чтобы туда добраться. Также я не вижу выхода, я думал, что вам нужно, чтобы объявить, какие из торговых точек должны быть заменены. Я бы подумал, что если внутри другого тестового компонента есть один тестовый компонент, мы должны дважды увидеть текст «это тест» дважды? – Jackie

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