我有一种情况,只能在一个值(身份或年龄或性别)中执行搜索。
如果我使用下面只传递id的路线,
this.router.navigate(['details'],
{
queryParams:
{
id: this.id,
age: this.age,
sex: this.sex,
}
})
url看起来像http://path/details?id=10&age=&sex=
我希望我的网址像
路径/详细信息?id = 10 id搜索
路径/详细信息?年龄= 25岁的搜索
所以我重构了我的代码,
if(this.id) {
this.router.navigate(['details'],
{
queryParams:
{
id: this.id
}
})
}else if(this.age){
this.router.navigate(['details'],
{
queryParams:
{
age: this.age
}
})
}else if(this.sex){
this.router.navigate(['details'],
{
queryParams:
{
sex: this.sex
}
})
}
是否有更好的方法来重构代码以避免if语句
答案 0 :(得分:3)
你可以这样做,:
this.router.navigate(['details'],
{
queryParams:
{
id: this.id || null,
age: !this.id && this.age || null,
sex: !this.id && !this.age && this.sex || null
}
});
上面会给你结果。