角度表日期范围过滤器不起作用

时间:2021-05-24 09:40:02

标签: angular date filter

我有一个从 API 获取数据的表,我正在尝试实现日期范围过滤器, 这是我的功能:

  getDateRange(value) {
    console.log(this.dataSource.data);
    // getting date from calendar
    const fromDate = formatDate( value.fromDate,'MM/dd/yyyy','en-US');
    const toDate = formatDate( value.toDate,'MM/dd/yyyy','en-US');
    this.dataSource.data = this.dataSource.data.filter(e => {
     formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate
      console.log(formatDate( e.issue_date,'MM/dd/yyyy','en-US'))
    });
    console.log(fromDate, toDate);
    console.log(this.dataSource.data);
  }

在我的控制台中,我以完整数组形式获取之前的所有数据 (console.log(this.dataSource.data);),在过滤器行之后我得到一个空数组,有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

您需要在过滤器函数中返回一个值。

你是否这样做(过滤器中没有括号):

this.dataSource.data = this.dataSource.data.filter(e => (formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate))

或(带有明确的“返回”):

this.dataSource.data = this.dataSource.data.filter(e => { return 
     (formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate)});