ситуации. У меня приходят данные стрингами в виде "1.000", "2.000", "3.000" и тд. Так вот сортировка в таблице для ячеек с такими данными работает криво, т.к. проверка идёт посимвольно для стринг и для случая проверки "1.000" и "10.000" точка не учитвыается и для проверки они становятся равноценны, в итоге я получаю порядок после сортировки: 1, 1, 10, 2, 3, 4. Ну вы поняли. Для столбца с другими данными, где недробно тоже работает криво почему-то. Данные в виде стринг "1", "2" ... и тд для случая "1" и "10" так же равносильны и получается 1, 10, 2, 3, 4, 5 ... Я полез смотреть функцию сортировки у материал таблицы https://github.com/angular/components/blob/c2a20c4a035ef57bf598fd78bc7284c180b34c78/src/material/table/table-data-source.ts и тут меня смущает момент. Проверка идёт посимвольная, но нет приведения к числу, что и вызывает мою проблему. И, вероятно, не только мою. Я бы добавил проверку на то, что оба сравниваемых значения стринги и потом проверял приводимость к числу и сравнивал уже числа после приведения. Или я чет неправильно понимаю?
кастомную сортировку я ещё не прикручивал к материалу. в смысле кейса такого не было, поэтому как правильнее прикрутить - пока хз
Обсуждают сегодня