目前我有多个过滤器。我想重置过滤器,但它无法正常工作。
showOnlyMyRequest(){
this.requests = this.requests.filter(request => request.requestedBy === 'John Doe');
}
showAllRequest(){
this.requests = this.requests.filter(request => request.requestedBy === '*');
}
在上面的示例中,showAllRequest()
不会重置之前的过滤器。
答案 0 :(得分:0)
来自MDN web doc:
The filter() method creates a new array with all elements that pass the test implemented by the provided function.
因此,您的请求数组成为返回的.filter(),如果您需要显示已过滤的请求,则应将过滤后的值存储在其他位置。
答案 1 :(得分:0)
如果您决定从搜索文本字段向搜索功能发送参数,则可以尝试此操作。 让我知道是否有更好的解决方案,所以我也可以提高自己。提前谢谢。
showAllRequest(parameter1){
if (parameter1 === '') {
/* call getmethod or the whole array variable got during get mehtod
*/
}
this.requests = this.requests.filter(request => request.requestedBy
=== '*');
}
以下编码版本:
filterform(search) {
if (search === '') {
this.getFormSettings();
}
this.requests = this.requests.filter(request =>
request.requestedBy.indexOf(search.toLowerCase()) >= 0 === '*');
}