首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重定向到另一条路径,而不是在角4中给定

重定向到另一条路径,而不是在角4中给定
EN

Stack Overflow用户
提问于 2018-02-08 13:46:38
回答 2查看 314关注 0票数 0

App路线:

代码语言:javascript
运行
复制
[
    { path: '', loadChildren: './layout/layout.module#LayoutModule', canActivate: [AuthGuard] },
    { path: 'login', loadChildren: './login/login.module#LoginModule' },
    { path: 'dashboard', loadChildren: './layout/layout.module#LayoutModule' },
    { path: 'error', loadChildren: './server-error/server-error.module#ServerErrorModule' },
    { path: 'access-denied', loadChildren: './access-denied/access-denied.module#AccessDeniedModule' },
    { path: 'not-found', loadChildren: './not-found/not-found.module#NotFoundModule' },
    { path: '**', redirectTo: 'not-found' }
]

LayoutModule路线:

代码语言:javascript
运行
复制
   [{
        path: '',
        component: LayoutComponent,
        children: [
            { path: '', redirectTo: 'dashboard' },
            { path: 'allcookies' , loadChildren: './allcookies/allcookies.module#AllcookiesModule' },
            { path: 'dashboard', loadChildren: './dashboard/dashboard.module#DashboardModule' },
            { path: 'details', loadChildren: './details/details.module#DetailsModule' },
            { path: 'domains', loadChildren: './domains/domains.module#DomainsModule' },
        ]
    }]

我的DetailsModule路线是这样的,

代码语言:javascript
运行
复制
[
  { path : '' , redirectTo: 'email-details' },
  { path : 'email-details' , component : EmailDetailsComponent },
  { path : 'email-details/:email_id' , component : EmailDetailsComponent },
  { path : 'email-details/:email_id/:curr_page' , component : EmailDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page/domains/:user_id/:domain_page' , component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page/domains/:user_id' , component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page' , component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id' , component : FingerprintDetailsComponent },
  { path : 'fingerprint-details' , component : FingerprintDetailsComponent }
]

我已经给了url

http://localhost:4302/details/fingerprint-details

但是它重定向到

http://localhost:4302/details/email-details/fingerprint-details

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-08 13:59:10

在redirectTo属性中,应该从路由级别写入绝对路径。我还总是在我的所有路由中使用pathMatch: 'full',以确保我不会涉及到相对路径。

使用该配置测试它:

代码语言:javascript
运行
复制
[
  { path : '' , redirectTo: '/email-details', pathMatch: 'full'},
  { path : 'email-details' , pathMatch: 'full', component : EmailDetailsComponent },
  { path : 'email-details/:email_id' , pathMatch: 'full', component : EmailDetailsComponent },
  { path : 'email-details/:email_id/:curr_page' , pathMatch: 'full', component : EmailDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page/domains/:user_id/:domain_page' , pathMatch: 'full', component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page/domains/:user_id' , pathMatch: 'full', component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id/:fp_page' , pathMatch: 'full', component : FingerprintDetailsComponent },
  { path : 'fingerprint-details/:fp_id', pathMatch: 'full', component : FingerprintDetailsComponent },
  { path : 'fingerprint-details' , pathMatch: 'full', component : FingerprintDetailsComponent }
]

下面是到doc的相应链接:https://angular.io/guide/router#redirecting-routes

票数 1
EN

Stack Overflow用户

发布于 2018-02-08 14:07:52

昆汀比我快。

https://angular.io/guide/router

“重定向路由要求pathMatch属性告诉路由器如何将URL与路由路径匹配。如果不匹配,路由器将抛出错误。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48687016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档