Я хотел бы создать компонент, похожий на кнопку, которая при нажатии перенаправляет на его собственный маршрут.
Мой компонентный модуль:
@NgModule({
imports: [
CommonModule,
RouterModule.forChild([
{
path: '',
children: [
{
path: 'child',
component: MyChildComponent
}
],
}
])
],
providers: [...],
declarations: [MyComponent, MyChildComponent],
exports: [MyComponent, RouterModule]
})
export class MyComponentModule { }
...
Мой компонентный контроллер:
export class MyComponent {
constructor(
private router: Router,
private route: ActivatedRoute) { }
onClick() {
this.router.navigate(['child'], { relativeTo: this.route })
}
}
Теперь, если я использую MyComponent для другого компонента, при щелчке выдается ошибка:
Error: Cannot match any routes. URL Segment: 'parentPath.../child'
Я уже пробовал это на маршрутах MyComponent:
const routes: Routes = [
{
path: 'child',
component: MyComponent
}
]
Это работает, но я не могу снова запустить MyChildComponent (null возвращается из функции навигации), и функция навигации не соответствует маршруту 'child', если я использую компонент в своем корневом приложении.
Итак, возможно ли расширить отображение маршрутов компонента на дочернем компоненте?