如果存在参数,则加载不同的页面

Load different page if params are present

您好,我想知道是否可以根据参数是否存在打开不同的页面。

我尝试了以下两种可能性:

    { 
      path: 'page1', 
      component: Page1,
      canActivate: [AuthGuard],
      children: [
        {
          path: 'page1/:test',
          component: Page2,
          canActivate: [AuthGuard]
        }
      ]
    },

并将它们分开

    { 
      path: 'page1', 
      component: Page1,
      canActivate: [AuthGuard]
    },
    {
      path: 'page1/:test',
      component: Page2,
      canActivate: [AuthGuard]
    }

如何实现这种效果?因为使用这两个选项,即使添加了参数 test,我的浏览器也会打开 Page1。或者我应该使用不同的命名约定? (宁愿不)

Order 在声明 routes 时很重要。具体的要先声明。用以下内容替换您的代码。

{
      path: 'page1/:test',
      component: Page2,
      canActivate: [AuthGuard]
    },
    { 
      path: 'page1', 
      component: Page1,
      canActivate: [AuthGuard]
    }

啊哈,我通过制作 plunker 弄明白了(感谢@Maximus)。

我导航到::8080/page1?test=something 而不是 :8080/page1/something

配置确实正确。不便之处,敬请谅解。