如何在Angular2中验证Route params?例如,我有一条路线:
{path: 'artist/:id', component: ArtistInfoComponent}
我想要的是检查参数 id
是否是有效数字,如果是,只显示该组件 . 否则显示包含错误消息的页面 .
我在Angular 2中找到了Route Guards,但我认为这不是进行验证的最佳方式,因为我可以为不同的页面设置许多不同的参数,并为所有这些页面编写单独的Route Guard不是我想要的 .
是否有可能为每个路由参数指定正则表达式?
UPD: Maybe there is a way to do a validation on query params? I mean if I have such url: /search?q=blablabla&page=2 how can I check if the parameter page is valid? Is there a way to do it without Guards?
2 回答
防护是可行的方法,您可以将验证配置放入路径的
data
部分,并创建可重复使用的防护,以根据此配置验证参数 .通过使用 ActivatedRoute 服务,您可以获取参数并匹配您拥有的ID列表中的参数 . 如果匹配则显示详细信息,否则显示错误消息 .
exammple:
步骤1:在组件构造函数中注入(传递)ActivatedRoute
第2步: