У меня неясная проблема, связанная с программным роутером, перемещающимся внутри компонента. Я действительно много искал полезные решения, но, к сожалению, не нашел. Признаться ... Я не специалист по угловым, потому что я все еще учусь.
Короче. У меня есть AppRoutingModule:
....
export const routes: Routes = [
{
path: '',
redirectTo: 'search',
pathMatch: 'full'
},
{
path: 'search',
component: SearchComponent,
children: [
{
path: 'allgarchiv',
component: AllgarchivComponent,
outlet: 'search'
}
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Таким образом, у меня есть два маршрутизатора-выхода, основной и один, называемый «поиск» (см. Выше).
Во время загрузки SearchComponent (который работает!) Я хочу автоматически перейти по пути "allgarchiv" (см. Выше; router-outlet = "search").
import { AfterContentInit, AfterViewInit, Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'axa-search',
template: `
<br>
<ngb-tabset>
<ngb-tab title="Suche" id="tab-search">
<ng-template ngbTabContent>
<!-- <a [routerLink]="[{ outlets: { search: ['allgarchiv'] } }]">Test_LoadRouter</a> -->
<router-outlet name="search"></router-outlet>
</ng-template>
</ngb-tab>
<ngb-tab id="tab-list" [disabled]="false" title="Treffer">
<ng-template ngbTabContent>TO FILL!!!</p>
</ng-template>
</ngb-tab>
</ngb-tabset>
`,
styles: []
})
export class SearchComponent implements AfterContentInit {
constructor(private router: Router, private route: ActivatedRoute) { }
ngAfterContentInit() {
// this.router.navigate( ['allgarchiv', { outlets: { search: { relativeTo: this.route }}}] );
this.router.navigate( [{ outlets: { search: ['allgarchiv']}}] );
}
}
Но это не работает. Я получаю следующую ошибку:
ОШИБКА Ошибка: не перехвачено (в обещании): Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: 'allgarchiv' Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: 'allgarchiv'
Если вы заглянули в шаблон, я также попробовал это, сначала щелкнув Router-Link (Test_LoadRouter; в настоящее время комментарий). И это работает как шарм !!
У меня вопрос, как мне программно перейти к маршрутизатору из SearchComponent?
Я также пробовал разные жизненные циклы, но без каких-либо результатов и с той же ошибкой.
Любая помощь действительно ценится. Спасибо заранее.