У меня есть ngtabcontent, поэтому его содержимое должно быть динамическим, поэтому создайте дочерние маршруты для PersonalComponent, и теперь, щелкнув следующий, он должен перейти к своему дочернему маршруту.
const routes: { path: '', redirectTo: 'tenant', pathMatch: '{ path: "personal", component: children: [
{ path: 'employer', component: AddemployerComponent, outlet: 'test'},
]
},
{ path: "applicant", component: AddapplicantComponent },
{ path: 'tenant', component: TenantappComponent },
{ path: 'animal', component: AddanimalComponent },
{ path: 'vehicle', component: AddvehiclesComponent },
{ path: 'background-info', component: BackgroundInfoComponent },
{ path: 'termsandconditions', component: TermsandconditionsComponent },
{ path: 'payment', component: PaymentComponent }
];
Итак, это мой модуль маршрутизации, в котором я изначально показываю свой личный компонент, и после следующего щелчка по нему должен перемещаться дочерний маршрут-работодатель, у которого есть имя для розетки.
nextFn() {
if (this.router.url === '/personal') {
this.router.navigate(['employer', {outlets: 'test'}]);
this.shared.isSubmitPayment = true;
} else if (this.router.url === '/employer') {
this.router.navigate(['animal']);
} else if (this.router.url === '/animal') {
this.router.navigate(['vehicle']);
} else if (this.router.url === '/vehicle') {
this.router.navigate(['background-info']);
} else if (this.router.url === '/background-info') {
this.router.navigate(['termsandconditions']);
} else if (this.router.url === '/termsandconditions') {
this.router.navigate(['payment']);
}}
В файле компонентов мой маршрут выглядит так ..
<div class = "row personal-info">
<div class = "input-group">
<div class = "input-group-prepend">
<div class = "input-group-text" id = "btnGroupAddon"><i class = "fa fa-check" aria-hidden = "true"></i></div>
</div>
<p class = "registration"><b>Registration Successful</b></p>
</div>
</div>
<app-tenant-header></app-tenant-header>
<div class = "form-feilds">
<h6>Personal Information</h6>
<ngb-tabset>
<ngb-tab [id] = "tab.id" *ngFor = "let tab of tabs;let i = index;">
<ng-template ngbTabTitle>
{{tab.title}}{{applicantNumberArray[i - 1]}}
</ng-template>
<ng-template ngbTabContent>
<div *ngIf = "!shared.isSubmitPayment">
<app-formfields [personalInfo]=personalInfo [tabIndex]=i [tabs]=tabs (addApplication) = "addApplicantFn($event)" (deleteApplication) = "deleteApplicantFn($event)"></app-formfields>
</div>
<div *ngIf = "shared.isSubmitPayment">
<router-outlet></router-outlet>
</div>
</ng-template>
</ngb-tab>
</ngb-tabset>
</div>
<div class = "col-md-12 col-sm-12 col-xs-12 property-footer">
<app-footer></app-footer>
</div>
и мой html выглядит так ....
Заранее спасибо
Есть разница между child route
и named route
.
дочерний маршрут предназначен для маршрутов, для которых должен появиться другой шаблон в пределах. Они определяются так же, как и у вас, с помощью свойства children
в конфигурации маршрута. Дочерний маршрут направляется к выходу маршрутизатора в шаблоне родительского компонента.
названный маршрут предназначен для маршрутов, которые должны отображаться как родственники для другого шаблона, например, для параллельного отображения. Они указываются с помощью розетки маршрутизатора, определенной с помощью имени.
Судя по вашему примеру, вам нужен дочерний маршрут, а не названный маршрут. Поэтому вам следует убрать свойство outlet
из своего кода.
Удалите это здесь:
{ path: 'employer', component: AddemployerComponent, outlet: 'test'}
И тут:
['employer', {outlets: 'test'}]
Не могли бы вы опубликовать это как еще один вопрос с дополнительной информацией о том, что не работает?
@DeborahK Не могли бы вы мне помочь с stackoverflow.com/questions/64701379/…?
Он работает, но у меня есть еще один основной выход маршрутизатора, который отображается при попытке перейти к дочернему маршруту, поэтому, когда я пытаюсь перейти к дочернему маршруту, отображаются оба выхода маршрутизатора