0

给定以下代码:

const LOCALIZED_PATHS: Route[] = [
  {
    path: 'activities',
    canActivate: [CountryGuard],
    loadChildren: 'app/common/activities/index/global/activity-index.module#ActivityIndexModule'
  }
];

.
.
.

RouterModule.forRoot([
      ...LOCALIZED_PATHS,

      /** GLOBAL ROUTES */
      // New Module
      {
        path: 'activities/new',
        loadChildren: 'app/common/activities/new/activity-new.module#ActivityNewModule'
      }
      .
      .
      .

和路线/activities/new

我希望路由器测试里面的规则LOCALIZED_PATHS,如果它返回false,测试下一个规则(path: /activities/new)并匹配。

目前正在发生的事情 - 根据谷歌开发控制台中的程序流程 - 它首先测试由ActivityIndexModule和返回的规则false,然后测试canActivate守卫并返回false,但最后没有导航到ActivityNewModule.

我错过了什么?我是否正确理解控制台中的流程,因为它应该在给定程序逻辑的情况下运行?

非常感谢您的宝贵时间。

4

1 回答 1

0

解决了。一旦匹配器捕获到路由,路由就结束了。守卫是后匹配的,所以即使它返回false,路由器也不会继续尝试匹配下一条规则。

于 2018-10-17T15:57:29.813 回答