例如,我有这样的网址
/mycomponent(sidebar:detail/:id)
现在,如果未指定:id,我想更改我的网址,并为参数设置另一个值。
问题是params
的{{1}}属性是只读的。
答案 0 :(得分:0)
如果未设置重定向,则可以通过编程方式进行重定向。
更好的是,在控制器中创建一个变量。它读取ID,但是如果未设置ID,则将变量设置为默认值。然后,组件中的所有内容都会从此var中读取,而不是直接从param值中读取。
伪代码:
const myParamId = param.id || 5
答案 1 :(得分:0)
您可以强制导航到所需的路线。您可以使用navigate
或navigateByUrl
。
this.route.params
.subscribe(params=>{
if(params.id === null || params.id ===undefined){
this.route.navigate(['sidebar/detail/defaultId'])
}
})
但是我确实认为您应该尝试重定向(也许可以查看CanActivate
?),而不是在组件内部导航。定义明确的路由(具有正确的重定向和后备)要干净得多。