Угловая документация настоятельно рекомендует не использовать трубы в качестве сортировочных устройств.
Фильтрация и особенно сортировка - дорогостоящие операции. Пользовательский интерфейс может значительно ухудшиться даже для списков среднего размера, когда Angular вызывает эти методы канала много раз в секунду. filter и orderBy часто использовались в приложениях AngularJS, что приводило к жалобам на медленную работу самого Angular. Это обвинение справедливо в том смысле, что AngularJS подготовил эту ловушку производительности, предложив в первую очередь filter и orderBy.
...
Команда Angular и многие опытные разработчики Angular настоятельно рекомендуют перенести логику фильтрации и сортировки в сам компонент. Компонент может предоставлять свойство FilterHeroes или sortedHeroes и контролировать, когда и как часто следует выполнять вспомогательную логику. Любые возможности, которые вы могли бы поместить в канал и совместно использовать в приложении, можно записать в службу фильтрации / сортировки и внедрить в компонент.
Трубы скорее используются для обработки элементов массивов один за другим. Вы можете использовать каналы в верхнем или нижнем регистре или применять любые виды преобразования к элементам массива.
Как рекомендовано в Angular doc, я бы предпочел перейти на программный подход и переместить сортировку в компоненте, используя функциональность упорядочения Javascripts.
Для полного обсуждения, пожалуйста, прочитайте это сообщение стека , которое кажется довольно подробным.
Короткий ответ будет:
boatBookings.sort()
boatBookings.sort(function(a,b){
return new Date(b.date).getDate() - new Date(a.date).getDate();
});
А для тех из вас, кто в ES 6, это выглядело бы так:
boatBookings.sort()
boatBookings.sort((a,b) => new Date(b.date).getDate() - new Date(a.date).getDate())
После сортировки массива вы можете передать его в HTML
.