Я делаю схему, основанную на моем маршруте, и я не могу найти, как использовать детей, а не определять новый маршрут.
Мои страницы:
эта конфигурация будет правильно маршрутизироваться
export const ARTICLES_ROUTE: Routes = [
{
path: 'articles',
component: ArticlesComponent,
data: {
pageTitle: 'articles.title'
},
},
{
path: 'articles/:articleUrl',
component: ArticleComponent,
resolve: {
article: ArticleResolver
}
}
];
но когда я использую this.activatedRoute.root
(для вычисления моей крошки)
{
'url' : '/';
},
{
'url': 'articles/:articleUrl/';
}
А если я использую "нормальную" конфигурацию
(на основе https://angular.io/guide/router#child-route-configuration)
export const ARTICLES_ROUTE: Routes = [
{
path: 'articles',
component: ArticlesComponent,
data: {
pageTitle: 'articles.title'
},
children: [
{
path: ':articleUrl',
component: ArticleComponent,
resolve: {
article: ArticleResolver
}
}
]
}
];
Я могу перейти к http://localhost:9000/#/articles/festival-cannes-2017
Мой this.activatedRoute.root
правильный
{
'url' : '/';
},
{
'url': 'articles';
},
{
'url': ':articleUrl';
}
Но отображается компонент ArticlesComponent
, а не ArticleComponent
. (Также отображается ArticlesComponent
, если я пришел от http://localhost:9000/#/).
Я могу исправить некоторые исправления в своем коде, чтобы использовать «почти рабочую конфигурацию», но я хотел бы понять, что я делаю неправильно.
"@angular/common": "6.0.0",
"@angular/compiler": "6.0.0",
"@angular/core": "6.0.0",
"@angular/router": "6.0.0",
Спасибо, что просветили меня.