Маршрутизатор Angular6 для детей с параметром: - PullRequest
0 голосов
/ 02 сентября 2018

Я делаю схему, основанную на моем маршруте, и я не могу найти, как использовать детей, а не определять новый маршрут.

Мои страницы:

эта конфигурация будет правильно маршрутизироваться

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",

Спасибо, что просветили меня.

...