Angular版本:4.3
我有一个带有3个搜索字段的屏幕:id
,name
和category
。填满字段后,我进行研究。
我希望对此代码有更好的建议,因为如果我有多个研究领域,那么对于大量的组合这将是不切实际的实现。 HttpParams
对象是不可变的事实是,它使我陷入了字段组合的困境,因为我无法在检查字段是否已填充时进行连接。
请参见下面的代码:
pesquisaRestaurantes(id ? : string, name ? : string, category ? : string): Observable < Restaurant[] > {
let params: HttpParams = undefined;
if (id) {
params = new HttpParams().append('id', id)
} else {
if (name && category) {
params = new HttpParams().append('name', name).append('category', category)
} else if (name) {
params = new HttpParams().append('name', name)
} else if (category) {
params = new HttpParams().append('category', category)
}
}
return this.http.get < Restaurant[] > (`${MEAT_API}/restaurants`, {
params: params
})
}
我期待更好的实施。谢谢。
答案 0 :(得分:1)
应该工作:
...
params = new HttpParams();
If(name) params = params.append('name', name);
If(category) params = params.append('category', category);
...