Angular 是否可以根据角度的条件进行布线?

Angular 是否可以根据角度的条件进行布线?,angular,angular-ui-router,angular7,angular-routing,angular8,Angular,Angular Ui Router,Angular7,Angular Routing,Angular8,在角度应用中,我有如下所示的路由动态配置 { path: ':locale/:id', component: HomePageCategory }, { path: ':locale/:platform', component: PlatformPageCategory }, { path: ':locale/contact', component: ContactPageCategory }, 在上面的代码中,我已经基于动态值进行了导航。若第二个url以数字形式出

在角度应用中,我有如下所示的路由动态配置


 { path: ':locale/:id', component: HomePageCategory    },
 { path: ':locale/:platform', component: PlatformPageCategory    },
 { path: ':locale/contact', component: ContactPageCategory    },

在上面的代码中,我已经基于动态值进行了导航。若第二个url以数字形式出现,则表示它应该转到一个组件,而其以字符串形式出现,则表示它应该转到另一个组件。基于这一点,它应该只选择一条路线。这是我的要求。这是否可能实现

是否可以根据条件选择路线

此外,是否支持基于条件的路由?就像ASPNET核心一样。请检查下面的图片


您可以通过canActivate来完成。在canActivate中,检查routeParam的类型,并相应地将其重定向到您希望的另一条路线

我在这里举了一个stackBlitz的例子:
我不知道如何在路径描述中实现这一点。你可以做的就是重构你的路径,然后让它有不同数量的参数。然后,当您必须导航到路线时,您可以进行变通

例如:

if (isNaN(parseInt(yourParam))){
   // This is not a number, navigate to route 1
} else {
   // This is a number, navigate to route 2
}

嗨@Udi,我已经试过了,但当我按程序进行路由时,意味着它总是只按第一个路由器配置。我无法通过编程方式呼叫第二路由器。你能分享一下我的想法吗?我举了一个stackBlitz的例子。若你们写一个字符串,它将转到字符串组件,若你们写一个数字,它将转到数字组件。嗨,你能检查一下图像吗,这是我在…中需要的。。。。嗨@Gabryel,我已经试过了,但当我按程序进行路由时,意味着它总是只按第一个路由器配置。我无法通过编程方式呼叫第二路由器。你能分享一下关于这个的想法吗。