Я уже прочитал все решения по этому поводу на портале, но не смог найти правильное решение.Вот как это выглядит:
У меня есть один компонент:
import {Component} from '@angular/core';
@Component({
selector: 'component-one',
template: 'Component One'
})
export class ComponentOne {
}
и два дочерних компонента:
import { Component } from '@angular/core';
@Component({
selector: 'child-one',
template: 'Child One'
})
export class ChildOne {
}
import { Component } from '@angular/core';
@Component({
selector: 'child-two',
template: `
<nav>
<a [routerLink]="['child-one']">Child One</a><br />
<a [routerLink]="['child-two']">Child two</a><br />
</nav>
<router-outlet></router-outlet>
`
})
export class ChildTwo {
}
Чего я хочу достичь, когда вы нажимаете на ComponentOneМаршрут заключается в том, что я перенаправлен на дочерний компонент, который содержит шаблон с другим выходом маршрутизатора.
Вот как выглядят маршруты:
import { Routes, RouterModule } from '@angular/router';
import ComponentOne from './component-one';
import ComponentTwo from './component-two';
import ChildOne from './child-one';
import ChildTwo from './child-two';
export const routes: Routes = [
{ path: '', redirectTo: 'component-two', pathMatch: 'full' },
{ path: 'component-two', component: ComponentTwo },
{ path: 'component-one', component: ComponentOne,
children: [
{ path: '', redirectTo: 'child-two', pathMatch: 'full' },
{ path: 'child-one', component: ChildOne },
{ path: 'child-two', component: ChildTwo }
]
}
];
export const appRoutingProviders: any[] = [
];
export const routing = RouterModule.forRoot(routes);
В app.component.html у меня есть:
import {Component} from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app',
template: `
<nav>
<a [routerLink]="['/component-one']">Component One</a>
<a [routerLink]="['/component-two']">Component Two</a>
</nav>
<div style="color: green; margin-top: 1rem;">Outlet:</div>
<div style="border: 2px solid green; padding: 1rem;">
<router-outlet></router-outlet>
</div>
`
})
export class AppComponent {
}
У меня ошибка: Uncaught (в обещании): Ошибка: не удается найти первичный выход для загрузки 'ChildTwo' Ошибка: не удается найти первичный выход для загрузки 'ChildTwo'
Кто-нибудь знает в чем проблема?Я добавил розетку маршрутизатора внутри компонента child-two, а также внутри app.component.
Если кому-то нужно знать, это структура приложения: Спасибо!