如果存在参数,则加载不同的页面
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
配置确实正确。不便之处,敬请谅解。
您好,我想知道是否可以根据参数是否存在打开不同的页面。
我尝试了以下两种可能性:
{
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
配置确实正确。不便之处,敬请谅解。