如何在 Angular 中从同级组件导航到另一个同级组件?
how to navigate from sibling component to another sibling component in Angular?
下面是我的app.routing.ts
export const Approute: Routes = [
{
path: 'login',
component: LoginComponent
},
{
path: 'home',
component: HomeComponent,
children: [
{
path: 'dashboard',
component: DashboardComponent
},
{
path: 'trip-details',
component: TripDetailsComponent
}
]
},
{ path: 'not-found', component : NotFoundComponent },
{ path: '**', redirectTo: '/not-found' }
];
component.ts
viewDetails(details) {
...
this.route.navigate(['../trip-details']);
}
上面我有一个组件,我正在尝试导航到另一个同级组件,但无法导航到 http://localhost:4200/home/trip-details
,它会将我重定向到 http://localhost:4200/not-found
。
哪里做错了?
您可以指定relativeTo
哪条路线,如下所示:
import {Router, ActivatedRoute } from '@angular/router';
constructor(private r: ActivatedRoute) { }
viewDetails(details) {
...
this.route.navigate(['../trip-details'], { relativeTo: this.r });
}
您应该这样导航:
this.route.navigate(['home', 'trip-details']);
或者,将trip-details在路线中上移一层,然后您可以直接使用
导航到它
this.route.navigate(['trip-details']);
因为angular找不到url作为../trip-details
你应该使用this.route.navigate(['/home/trip-details']);
请在url
前面加上'home'
下面是我的app.routing.ts
export const Approute: Routes = [
{
path: 'login',
component: LoginComponent
},
{
path: 'home',
component: HomeComponent,
children: [
{
path: 'dashboard',
component: DashboardComponent
},
{
path: 'trip-details',
component: TripDetailsComponent
}
]
},
{ path: 'not-found', component : NotFoundComponent },
{ path: '**', redirectTo: '/not-found' }
];
component.ts
viewDetails(details) {
...
this.route.navigate(['../trip-details']);
}
上面我有一个组件,我正在尝试导航到另一个同级组件,但无法导航到 http://localhost:4200/home/trip-details
,它会将我重定向到 http://localhost:4200/not-found
。
哪里做错了?
您可以指定relativeTo
哪条路线,如下所示:
import {Router, ActivatedRoute } from '@angular/router';
constructor(private r: ActivatedRoute) { }
viewDetails(details) {
...
this.route.navigate(['../trip-details'], { relativeTo: this.r });
}
您应该这样导航:
this.route.navigate(['home', 'trip-details']);
或者,将trip-details在路线中上移一层,然后您可以直接使用
导航到它this.route.navigate(['trip-details']);
因为angular找不到url作为../trip-details
你应该使用this.route.navigate(['/home/trip-details']);
请在url
前面加上'home'