以编程方式进行角度导航(router.navigate).错误:无法匹配任何路线 [英] angular navigate programmatically (router.navigate). Error: Cannot match any routes

查看:101
本文介绍了以编程方式进行角度导航(router.navigate).错误:无法匹配任何路线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在组件内部尝试以编程方式导航到另一个路由路径,但出现错误(错误:未捕获(承诺):错误:无法匹配任何路由.URL段:).

Trying inside component programmatically navigate to another route path, but have error (ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment:).

具有应用的下一个结构:

Have next structure of app:

app.module.ts
main.module.ts
     milestone.ts

const mainRoutes: Routes = [
  {
    path: '',
    component: MainComponent,
    canActivate: [LoggedInGuard],
    children: [{
      path: '',
      component: ContentComponent
    },
      {
        path: 'milestone/:milestoneId',
        loadChildren: './content/milestone/milestone.module#MilestoneModule',
        canActivate: [MilestoneGuard]
      }],
  }
];

imports 部分中 main.module.ts 中的

:

@NgModule({
  imports: [
    ...............
    RouterModule.forChild(mainRoutes)
  ],

和里程碑路线:

const milestoneRoutes: Routes = [
  {
    path: '',
    component: MilestoneComponent,
    canActivate: [LoggedInGuard],
    children: [{
      path: '',
      redirectTo: 'qa/documents',
      pathMatch: 'full'
    },
      {
        path: 'qa/documents',
        component: qaDocumentsComponent
      },
      {
        path: 'home/documents',
        component: homeDocumentsComponent
      }
    ]
  }
];

milestone.module.ts

milestone.module.ts

    @NgModule({
      ..........
      RouterModule.forChild(milestoneRoutes)
      ],

milestone.component.html:

milestone.component.html:

<div class="row content-wrap">
  <sidebar></sidebar>
  <main class="main-content">
    <router-outlet></router-outlet>
  </main>
</div>

通过模板进行的导航运行良好(我们打开了/qa/documents ),但是当尝试以编程方式导航时,我们会出错.

Navigation from template working well (we switches on /qa/documents ), but when trying to navigate programmatically there we have error.

仅用于尝试在Miletone.component.ts的ngOnInit()挂钩方法中进行导航的测试:

Just for testing trying to navigate in ngOnInit() hook method of milestone.component.ts:

export class MilestoneComponent implements OnInit {

  constructor( private router: Router) {}

  ngOnInit() {
    this.router.navigate(['/home/documents']);
  }

出现错误: core.es5.js:1020错误错误:未捕获(承诺):错误:无法匹配任何路由.网址段:首页/文档"

可能是什么问题?

推荐答案

您应该尝试在数组中使用单独的参数进行导航:

You should try to navigate with separate parameters in an array maybe:

this.router.navigate(['home', 'documents']);

这篇关于以编程方式进行角度导航(router.navigate).错误:无法匹配任何路线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆