首页 > 解决方案 > 对primeng表使用日期范围过滤器

问题描述

我有以下代码用于在 PrimeNG 表中实现日期范围过滤器。

                    <th class="filter_header">
                      <p-calendar
                       
                        (onSelect)="historyTable.filter($event,'release_datetime', 'dateRangeFilter')"
                        placeholder="Search by release date"
                        [appendTo]="historyTable"
                        [(ngModel)]="rangeDates"
                      </p-calendar>
                    </th>

在组件中,我FilterUtils定义如下:

FilterUtils['dateRangeFilter'] = (value, filter): boolean => {
  if (filter === undefined || filter === null) {
    return true;
  }

  if (value === undefined || value === null) {
    return false;
  }
  console.log(value);
  if (this.rangeDates[0] <= value && this.rangeDates[1] >= value) {
    return true;
  }
}

但这不起作用。如果有人可以指导我正确的方向,那将很有帮助。

我得到的value是未定义的。我已经尝试过$event.target.value,但它也不起作用。

标签: javascriptangulartypescriptprimengdate-range

解决方案


尝试更新您的日历,如下所示。而不是使用$event,你需要rangeDates作为过滤器。

    <p-calendar
      [(ngModel)]="rangeDates"
      (onSelect)="historyTable.filter(rangeDates,'release_datetime', 'dateRangeFilter')"
      placeholder="Search by release date"
      [appendTo]="historyTable">
    </p-calendar>

推荐阅读