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

时间:2017-04-06 14:22:01

标签: angular angular2-routing

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

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

    { 
      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。或者我应该使用不同的命名约定? (宁可不愿意)

2 个答案:

答案 0 :(得分:1)

Aaah我通过制作羽毛球来解决这个问题(感谢@Maximus)。

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

配置确实正确。抱歉给您带来不便。

答案 1 :(得分:0)

声明路线时,

订单非常重要。具体应该首先申报。用以下代码替换你的代码。

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