【发布时间】:2020-02-18 05:48:49
【问题描述】:
我有一个非常简单的过滤器:
this.dataSource.filter = JSON.stringify({
state: this.searchForm.controls['stateInputControl'].value,
product: this.searchForm.controls['productInputControl'].value
});
但是,我需要添加一个过滤谓词,因为我需要一个 or 语句来表示状态。如果我只是让状态被传递,过滤谓词会很简单:
this.dataSource.filterPredicate = (data,filter:string ) => {
return (data.state == filter || data.state == "AL")
};
但是,过滤器不仅仅是一个字符串,它还是一个 json 数组。所以我需要做这样的事情:
this.dataSource.filterPredicate = (data,filter:{state:string,product:string} ) => {
return ((data.state == filter.state || data.state == "AL") && data.product == filter.product)
};
然而这会引发错误:
类型 '(data: Guide, filter: { state: string; product: string; }) => boolean' 不可分配给类型 '(data: Guide, filter: string) => boolean'。
参数“filter”和“filter”的类型不兼容。
类型 'string' 不可分配给类型 '{ state: string;产品:字符串; }'。
如何将 filterPredicate 与作为 json 数组的过滤器一起使用?
【问题讨论】:
标签: angular