Node.js Angular 5-如何使用HttpParams进行搜索/筛选
如何正确地使用HTTPParams应用过滤器,这是正确的用例吗 用户可以按多种语言、类型和兴趣进行筛选 组件。tsNode.js Angular 5-如何使用HttpParams进行搜索/筛选,node.js,angular,Node.js,Angular,如何正确地使用HTTPParams应用过滤器,这是正确的用例吗 用户可以按多种语言、类型和兴趣进行筛选 组件。ts this.filterForm = this.fb.group({ language: [], type: [], interests: [], }) this.filterForm.valueChanges.subscribe((res) => { console.log(res);
this.filterForm = this.fb.group({
language: [],
type: [],
interests: [],
})
this.filterForm.valueChanges.subscribe((res) => {
console.log(res);
let filters = res;
this.momentService.search(filters).subscribe((res) => {
console.log(res);
});
});
这就是数据的样子
.service.ts
this.filterForm = this.fb.group({
language: [],
type: [],
interests: [],
})
this.filterForm.valueChanges.subscribe((res) => {
console.log(res);
let filters = res;
this.momentService.search(filters).subscribe((res) => {
console.log(res);
});
});
我将filters对象传递给我的服务,该服务对/search进行api调用
search(filters) {
let endpoint = this.path + 'search';
let params = new HttpParams().set('filters', filters);
return this.apiService.get(endpoint, params);
}
请求
网址:
后端/搜索
search(req, res) {
let search = req.query;
console.log(search);
return res.json(search);
// TODO: Do search with filter objec.
}
我的节点后端像这样接收它,我对此无能为力。我曾尝试使用JSON.Stringfy将其传递到后端,但一旦结果变成字符串,我就无法将其转换回对象形式
{ filters: '[object Object]' }
我认为我没有正确地使用HTTPParms。您可以使用
HttpParamsOptions
的fromObject
选项,在您的情况下:
search(filters) {
let endpoint = this.path + 'search';
let params = new HttpParams({ fromObject: filters });
return this.apiService.get(endpoint, params);
}
您可以使用
HttpParamsOptions
的fromObject
选项,具体情况如下:
search(filters) {
let endpoint = this.path + 'search';
let params = new HttpParams({ fromObject: filters });
return this.apiService.get(endpoint, params);
}
你的
apiService.get
方法是什么样子的?@cyrix请检查这个粘贴库-你的apiService.get
方法是什么样子的?@cyrix请检查这个粘贴库-这个很好用。那么这个fromObject做什么呢?文档中似乎没有关于HttpParamsOption的内容。如果从对象创建一个HttpParams
映射,则可以找到实现。好的,很好。这很好。那么这个fromObject做什么呢?文档中似乎没有关于HttpParamsOption的内容。如果从对象创建一个HttpParams
映射,则可以找到实现。好的,很好。