有什么方法可以调试为什么无法识别角度路线?

时间:2019-07-19 14:38:02

标签: angular

我不知道为什么路由器不匹配给出的任何路由...我什至尝试了非常简单的路由,但是全部失败了。

我的路线(提取):

{
    path: ':rootFolder/',
    children: [
        {
            path: 'name/**',
            component: MainComponent,
        },
        {
            path: 'name/*', //  Debugging only
            component: MainComponent,
        },
        {
            path: 'name',   //  Debugging only
            component: MainComponent,
        },
        {
            path: '',
            component: MainComponent,
            pathMatch: 'full',
        },
    ],
},
{
    path: ':rootFolder/:currentFolder/',
    children: [
        {
            path: 'name/**',
            component: MainComponent,
        },
        {
            path: '',
            component: MainComponent,
            pathMatch: 'full',
        },
    ],
},

此外,我可以肯定,这些路由已被路由器接受,就像我使用UrlMatcher一样,我将获得正确的行为。我只想使用标准的内置解决方案,而不是这个...

解决这个问题是一回事,但是我很想学习为什么并且可能帮助别人...

3 个答案:

答案 0 :(得分:3)

您可以通过以下方式启用路由调试:

声明设置对象

    const settings: ExtraOptions = {
        enableTracing: true,
    };

,然后在声明路由器时使用它:

    RouterModule.forRoot(routes, settings)],

这样做,您将在浏览器控制台中获得输出。

注意:您还可以内联压缩settings对象。

答案 1 :(得分:2)

好的。因此,首先,配置本身存在问题。

问题出在父路径上。它们不能带有/后缀。如果您从两条父路线中都删除了该路线,那么一切都会按预期进行。

因此将path: ':rootFolder/',更改为路径:':rootFolder',

然后将path: ':rootFolder/:currentFolder/',更改为path: ':rootFolder/:currentFolder',

const routes: Routes = [{
  path: ':rootFolder',
  children: [
    {
      path: 'name/**',
      component: MainComponent,
    },
    {
      path: 'name/*', //  Debugging only
      component: MainComponent,
    },
    {
      path: 'name',   //  Debugging only
      component: MainComponent,
    },
    {
      path: '',
      component: MainComponent,
      pathMatch: 'full',
    },
  ],
},
{
  path: ':rootFolder/:currentFolder',
  children: [
    {
      path: 'name/**',
      component: MainComponent,
    },
    {
      path: '',
      component: MainComponent,
      pathMatch: 'full',
    },
  ],
}]

  

这是您推荐的Working Sample StackBlitz

答案 2 :(得分:0)

删除“ /”

path: ':rootFolder',