【问题标题】:Angular router: route not being tested by following path rule角度路由器:路由未通过以下路径规则测试
【发布时间】:2018-10-17 23:57:29
【问题描述】:

给定以下代码:

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

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

非常感谢您的宝贵时间。

【问题讨论】:

    标签: angular-router angular-router-guards


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多