Использование фильтра диапазона дат для таблицы primeng

#javascript #angular #typescript #primeng #date-range

#javascript #угловой #typescript #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 amp;amp; this.rangeDates[1] >= value) {
    return true;
  }
}
  

Но это не работает. Если кто-нибудь может направить меня в правильном направлении, это было бы полезно.

Я получаю value как неопределенный. Я пробовал $event.target.value , но он также не работает.

Ответ №1:

Попробуйте обновить свой календарь, как показано ниже. Вместо использования $event вам нужен rangeDates фильтр as.

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