【发布时间】:2020-06-05 09:55:24
【问题描述】:
我在后端实现了一个端点,它根据搜索参数接受多个参数:
例如/api/transaction_report/?year=2020&month=5&subcounty=2
我有一个将过滤器参数作为输入的表单。如何根据onFilterTransactions()函数中不同的搜索过滤器组合动态创建查询字符串?
onFilterTrasactions() {
const params = [];
const dateFrom = this.dateFilterForm.get('fromDate').value
const dateTo = this.dateFilterForm.get('toDate').value;
const year = this.dateFilterForm.get('year').value;
const month = this.dateFilterForm.get('month').value;
const subcounty = this.dateFilterForm.get('subcounty').value;
const ward = this.dateFilterForm.get('ward').value;
const licenseCategoryCode = this.dateFilterForm.get('licenseCategoryCode').value;
const formItems = [ dateFrom, dateTo, year, month, subcounty, ward, licenseCategoryCode ];
for (const item of formItems) {
if (item != null) {
params.push(item);
}
}
console.log(dateFrom)
// console.log(this.dateFilterForm.value);
}
表单控件
例如,只想按月过滤,因此,其余的表单值最终将是null。
this.dateFilterForm = new FormGroup({
fromDate: new FormControl(),
toDate: new FormControl(),
year: new FormControl(),
month: new FormControl(),
subcounty: new FormControl(),
ward: new FormControl(),
licenseCategoryCode: new FormControl(),
});
过滤器屏幕截图
搜索服务
getAllFilteredTransactions(query) {
return this.http.get<any>(`${environment.apiUrl}/api/transactions/filter_report/?${query}=`, {
headers: this.headers
});
}
【问题讨论】:
-
所以你想构建你的
query字符串,比如fromDate=...&toDate=...&year=...等等? -
@VRoxa 是的
标签: angular typescript