如果未指定 URL 参数,则导航至路线

Navigate to a route if no URL params specified

在我的 Angular 4 应用程序中,我有一个群组部分。它可以显示您当前所有群组的列表 (/groups),也可以显示特定的群组页面(/groups/21,即 21 群组 ID)。

出于这个原因,我想启用从同一路由到两个页面的路由。

我试过以下方法:

{ path: 'groups/:groupid', component: GroupPageComponent, resolve: { group: GroupResolver } },

当我导航到特定组时它工作正常,但是当我尝试导航到一般 'all groups' 页面时,它只会重定向到默认的 '*' 匹配,甚至不会加载GroupResolver.

如果 URL 中没有指定组 ID,我如何启用到 'all groups' 页面的导航?

您可以指定两条路线:

{ 
   path: 'groups', 
   component: GroupPageComponent, 
   resolve: { group: GroupResolver }
},
{ 
   path: 'groups/:groupid', 
   component: GroupPageComponent, 
   resolve: { group: GroupResolver }
},

或者您可以只使用一个路由,即具有 ID 的路由,并在没有组 ID 时传入一个值,例如 0 或 -1。我在我的编辑页面上使用这种技术来处理编辑 "new" 产品。

或者您可以将 groupId 设为可选参数。但这会改变你的 URL 的样子:http://localhost:3000/groups;groupid=7这可能不是你想要的。