orderBy two fields (one in reverse)

JMaylin picture JMaylin · Nov 29, 2013 · Viewed 37.8k times · Source

I would like to order a friend list by status (online firsts, offline lasts) and by alphabetical order. All I manage to get is:

  • Online firsts / Reversed alphabetical order
  • Or offline firsts / Alphabetical order

Here is plunker to expose my problem

Answer

Ahmad Mageed picture Ahmad Mageed · Nov 29, 2013

Change the orderBy filter to this:

orderBy:['-status','name']

This will order by descending status (by prefixing the - character), then ascending name. Currently you're passing true to reverse the sort, which is causing the status to be correct (online first), but the names to be reversed (i.e., descending).

If you want to keep the reverse boolean, you could use orderBy:['status','-name']:true but that seems less clear than just making status descending as shown earlier.