【问题标题】:Angular 2 could not load child routes via urlAngular 2 无法通过 url 加载子路由
【发布时间】:2018-09-14 11:44:51
【问题描述】:

我已经定义了子路由,但我无法从 url 栏手动导航到这些路由。当我输入完整的 url 时,它会返回到第一个子路由;我错过了什么吗?

   {
  path: 'config',
  component: ConfigComponent,
  children: [
    { path: 'wordlists', component: WordListComponent },
    { path: 'groups',  component: GroupBuilderComponent },
    { path: 'tagbuilder', component: TagBuilderComponent }
  ],
  canActivate: [RouteGuard],
  data: { allowed: ['inv'] }
   }

当我输入网址http://localhost:63020/portal/config/tagbuilder 时,它总是将我带到http://localhost:63020/portal/config/wordlists

如何通过 url 访问每个子路由?

这是尝试导航到 tagbuilder 时的控制台日志,但会跳回

【问题讨论】:

  • 您是否在项目中将这些中的每一个都定义为路由?
  • 是的,它们都已定义,但是当我输入 URL 时似乎无法访问
  • 也许是你的后卫有副作用?你在控制台里有什么吗?您可以在路由器中启用跟踪以进行调试:RouterModule.forRoot(routes, { enableTracing: true })
  • 在问题中添加了 enabletracing 的结果..
  • 不确定它是否会起作用,但只是尝试一下:添加一个默认路由作为您的 first 孩子。例如{ path: '', redirectTo: 'wordlists', pathMatch: 'prefix' },

标签: angular url angular-router


【解决方案1】:

发现了问题,我在 ngOnInit 中有方法导致页面总是在初始化时加载到 Wordlists 页面上。因此,当我输入 url 时,它首先在 ngOnInit 中触发了该函数,限制转到其他 url,一旦我删除了该函数,我就可以分别访问每条路由

【讨论】:

    猜你喜欢
    • 2018-11-17
    • 2018-08-07
    • 2017-01-25
    • 1970-01-01
    • 2017-11-20
    • 2017-04-08
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多