Фильтр OrderBy для зулусского времени не работает должным образом - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь отфильтровать время от latest до null в приведенном ниже HTML. Формат времени в формате зулу (UTC), т.е. '2017/04/01T00:00:00.000Z'.

<li ng-repeat="contact in $ctrl.contacts | orderBy: 'LastChatTime' | filter : searchContact track by $index">

Когда я это сделаю. В записях, где существует время, сортируются в обратном порядке, а затем приходят нулевые записи. например:

 1. '2017/03/31T13:00:00.000Z'  
 2. '2017/04/01T00:00:00.000Z'  
 3. `Null`

Вместо:

 1. '2017/04/01T00:00:00.000Z' 
 2. '2017/03/31T13:00:00.000Z' 
 3. `Null`

1 Ответ

2 голосов
/ 04 апреля 2019

Если вы заметили, что ваши записи расположены в порядке возрастания, что соответствует поведению orderBy.

Здесь вам нужно отсортировать contacts в порядке убывания.

Вы можете попробовать следующий код,

<li ng-repeat="contact in $ctrl.contacts | orderBy: '-LastChatTime' | filter : searchContact track by $index">

-, прежде чем LastChatTime отсортирует ваши контактыв порядке убывания

Примечание: это не будет учитывать нулевые значения

Для поддержки пустых значений при сортировке вы можете попробовать ниже

<li ng-repeat="contact in $ctrl.contacts | orderBy: '[!LastChatTime, -LastChatTime]' | filter : searchContact track by $index">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...