typescript - چگونه از outlet فرزند به ریشه در angular برویم؟
مشکل این است که من میخواهم از داخل یک مسیر فرعی به ریشهی اپلیکیشن هدایت شوم.
این ساختار من است:
export const rootRouterConfig: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent, canActivate: [AuthGuard] },
{ path: 'dashboard', component: DashboardComponent, resolve: { data: UserResolver},
children: [
{ path: '', redirectTo: 'projects', pathMatch: 'full' },
{ path: 'projects', component: ProjectsComponent, resolve: { data: UserResolver}},
{ path: 'addproject', component: AddprojectComponent, resolve: { data: UserResolver}},
{ path: 'updateproject/:key', component: AddprojectComponent, resolve: { data: UserResolver}},
{ path: 'network', component: NetworkComponent, resolve: { data: UserResolver}},
{ path: 'figures', component: FiguresComponent, resolve: { data: UserResolver}},
{ path: 'user', component: UserComponent, resolve: { data: UserResolver}}
]
},
{ path: 'forgot', component: ForgotComponent },
];
این فایل app.component.html است:
<main>
<router-outlet></router-outlet>
</main>
و این فایل dashboard.component.ts است:
<div class="dashboard-content-wrapper">
<router-outlet></router-outlet>
</div>
من یک دکمه در UserComponent دارم که انتظار دارم به صفحه ورود هدایت شود چون ریشه است، اما نمیتوانم از کامپوننت داشبورد عبور کنم؟
deleteProfile() {
this.route.navigate(['/'])
}
پاسخ شماره ۱
پاسخ به :
زیرا این ممکن نیست چون من داخل UserComponent هستم که فرزند DashboardComponent است، بنابراین کلیک داخل یک outlet فرزند اتفاق میافتد.
این باید ممکن باشد. من همیشه این کار را انجام میدهم.
فقط مطمئن شوید که خط مورب را در مسیر مشخص کنید تا نسبت به مکان فعلی آن نسبی نباشد.
پس چیزی شبیه به این:
this.router.navigate(['/login']);
پاسخ شماره ۲
شما نیاز دارید مسیر را نسبت به route موجود مسیریابی کنید.
this.route.navigate([ '../../' ], { relativeTo: this.route })
