如何在Angular 4中重置过滤器

时间:2017-09-21 09:36:24

标签: javascript angular typescript

目前我有多个过滤器。我想重置过滤器,但它无法正常工作。

showOnlyMyRequest(){
    this.requests = this.requests.filter(request => request.requestedBy === 'John Doe');
  }

showAllRequest(){
    this.requests = this.requests.filter(request => request.requestedBy === '*');
  }

在上面的示例中,showAllRequest()不会重置之前的过滤器。

2 个答案:

答案 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 === '*');
}