Маршруты не могут быть сопоставлены при использовании нескольких router-outlet и routerLink

Я не могу получить ссылку для работы в моем приложении Angular 2.

Моя страница состоит из двух частей: заголовка и содержимого под ним. Две части моделируются маршрутизатором-выходом каждой. Когда я нажимаю на ссылку, обычно я хочу изменить и заголовок, и содержимое. Поэтому я попытался использовать routerLink и определить местоположение ссылки для каждой розетки, например <a [routerLink]="[{ outlets: { primary: '/content', header: '/header' }}]">link</a>.

К сожалению, ссылка не работает. На консоли роутер выдает следующую ошибку:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: '/content'
Error: Cannot match any routes. URL Segment: '/content'
    at ApplyRedirects.noMatchError (router.js:1760)
    at CatchSubscriber.eval [as selector] (router.js:1725)
    at CatchSubscriber.error (catchError.js:105)
// ... Many more lines

Кроме того, мне было интересно, правильно ли анализируется ссылка. При проверке HTML ссылка выглядит так: <a ng-reflect-router-link="[object Object]" href="//content(header:/header)">link</a>

Интересно, что я делаю неправильно, и я ценю вашу помощь!

Вот настройка:

app.module.ts

import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { HeaderComponent } from './header/header.component';
import { ContentComponent } from './content/content.component';
import { LinkComponent } from './link/link.component';
import { AppRoutingModule } from './app-routing.module';

@NgModule({
    declarations: [
        AppComponent,
        HeaderComponent,
        ContentComponent,
        LinkComponent
    ],
    imports: [
        BrowserModule,
        AppRoutingModule
    ],
    providers: [],
    bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts

import { Component } from '@angular/core';

@Component({
    selector: 'app-root',
    template: `
<router-outlet name="header"></router-outlet>
<router-outlet></router-outlet>`,
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'app';
}

приложение-routing.module.ts

import { NgModule } from '@angular/core';
import { Route, RouterModule } from '@angular/router';

import { LinkComponent } from './link/link.component';
import { ContentComponent } from './content/content.component';
import { HeaderComponent } from './header/header.component';

const routes : Route[] = [
    {
        path: '',
        component: LinkComponent
    },
    {   path: 'content',
        component: ContentComponent
    },
    {
        path: 'header',
        component: HeaderComponent,
        outlet: 'header'
    }
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
}) export class AppRoutingModule { }

ссылка/link.component.ts

import { Component } from '@angular/core';

@Component({
    selector: 'app-link',
    template: `
<p>I am the <a [routerLink]="[{ outlets: { primary: '/content', header: '/header'}}]">link</a>.</p>`
})
export class LinkComponent { }

заголовок/header.component.ts

import { Component } from '@angular/core';

@Component({
        selector: 'app-header',
        template: '<p>I am the header.</p>'
})
export class HeaderComponent { }

контент/content.component.ts

import { Component } from '@angular/core';

@Component({
        selector: 'app-content',
        template: '<p>I am the content.</p>'
})
export class ContentComponent { }

Я использую версию 5.2.8 Angular.

$ ng --version

Angular CLI: 1.6.7
Node: 9.4.0
OS: linux x64
Angular: 5.2.8
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.7
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.7
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0

person E_3    schedule 12.03.2018    source источник
comment
Привет. Добро пожаловать в сообщество Stackoverflow. Прочтите это: stackoverflow.com/questions/37157838 /   -  person Wasif Khan    schedule 12.03.2018
comment
почему вы не скрываете и не показываете заголовок на основе параметров URL?   -  person Rahul Sharma    schedule 12.03.2018
comment
@RahulSharma Как именно вы бы порекомендовали это в случае моего заголовка. Кроме того, поскольку я новичок в Angular, мне также интересно, почему мое решение выше не работает.   -  person E_3    schedule 12.03.2018
comment
Я не уверен в этом. Я сомневаюсь, как вы можете перенаправить 1 ссылку на 2 URL-адреса?   -  person Rahul Sharma    schedule 12.03.2018