Angular matSort не работает в столбце Date by desc - PullRequest
0 голосов
/ 24 января 2020

Попытка сортировки таблицы материалов по столбцу даты, формат даты - «ММ / ДД / ГГГГ, ч: мм А», порядок даты не по последней дате и времени. Все, что я пропустил из приведенного ниже стекаблиц-кода.

https://angular-matsordesc.stackblitz.io

1 Ответ

1 голос
/ 24 января 2020

Проблема в том, что сортировка даты сортируется по типу string вместо типа date.

. У меня работает изменение ngAfterViewInit для этого:

  ngAfterViewInit() {
    this.dataSource.sort = this.sort;
    this.dataSource.sortingDataAccessor = (item, property) => {
      switch (property) {
        case 'date': {
          let newDate = new Date(item.date);
          return newDate;
        }
        default: {
          return item[property];
        }
      }
    };
  }

То, что мы делаем здесь, это когда сортировка выполняется, в случае даты мы конвертируем item.date из строки в дату. Затем сортировка выполняет дату свойства как тип date.

Здесь я добавляю скриншот https://stackblitz.com/edit/angular-matsordesc?file=src%2Fapp%2Fapp.component.ts, где работает:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...