как я могу создать mat-таблицу, которая будет сортировать столбцы (то есть массивы данных) строк с нулевыми / пустыми значениями вместе со сравнением локализации и игнорированием строчных букв. Я попытался добавить пользовательскую сортировку с событием (matSortChange) в html, это обработчик события. Сейчас кажется, что это не работает для игнорирования корпуса или локали.
sortedData: Type[];
public sortData() {
const data = this.currentDataSource.data;
if (!sort.active || sort.direction === '') {
this.sortedData = data;
return data;
}
this.sortedData = data.sort((a, b) => {
const isAsc = sort.direction === 'asc';
switch (sort.active) {
case 'name': return this.sortingFunction(a.name, b.name, isAsc);
default: return 0;
case 'date' : return this.sortDates(a.date, b.date, isAsc)
}
});
}
private sortingFunction(a: string, b: string, isAsc: boolean) {
return a.toLowerCase().localeCompare(b.toLowerCase()) * (isAsc ? 1 : -1);
}
private sortDates(a: Date, b: Date, isAsc: boolean) {
return (new Date(a) < new Date(b) ? -1 : 1) * (isAsc ? 1 : -1);
}