Angular 如果未指定URL参数,则导航到路由
在我的Angular 4应用程序中,我有一个组部分。它可以显示当前所有组的列表,也可以显示特定的组页/groups/21,即组ID 因此,我希望启用从同一路由到两个页面的路由 我尝试了以下方法:Angular 如果未指定URL参数,则导航到路由,angular,angular-routing,Angular,Angular Routing,在我的Angular 4应用程序中,我有一个组部分。它可以显示当前所有组的列表,也可以显示特定的组页/groups/21,即组ID 因此,我希望启用从同一路由到两个页面的路由 我尝试了以下方法: { path: 'groups/:groupid', component: GroupPageComponent, resolve: { group: GroupResolver } }, 当我导航到一个特定的组时,它可以正常工作,但是当我尝试导航到常规的“所有组”页面时,它只会重定向到默认的“*”匹
{ path: 'groups/:groupid', component: GroupPageComponent, resolve: { group: GroupResolver } },
当我导航到一个特定的组时,它可以正常工作,但是当我尝试导航到常规的“所有组”页面时,它只会重定向到默认的“*”匹配,甚至不会加载GroupResolver
如果URL中没有指定组ID,如何启用“所有组”页面的导航?您可以指定两个路由:
{
path: 'groups',
component: GroupPageComponent,
resolve: { group: GroupResolver }
},
{
path: 'groups/:groupid',
component: GroupPageComponent,
resolve: { group: GroupResolver }
},
或者,当没有组id时,您可以只使用一个路由(具有id的路由),并传入值,如0或-1。我在编辑页面上使用此技术来编辑新产品
或者,您可以将groupId设置为可选参数。但这会改变您的URL的外观:http://localhost:3000/groups;groupid=7,这可能是不需要的
使用导航键,这比我要写的答案要好——我包括了一位家长,当然是在反思中,这是没有必要的,原则是一样的。但是如果你想把它添加到你的答案中。如果您觉得有必要,您可以编辑出父组件以匹配您的答案好答案!我喜欢有两条路线的替代方案。因为这样你就可以在浏览器字段中获得更清晰的URL/组而不是…/groups/-1。使用2条路线似乎是最好的选择。