Рассматривали ли вы использовать существующие каналы для сортировки вместо написания собственных?EG: https://github.com/danrevah/ngx-pipes
И, более конкретно, это: https://github.com/danrevah/ngx-pipes#orderby
Используя этот пакет, вам только тогда нужно будет управлять щелчком, чтобы установить переменную, чтобы определить порядок, и будет ли онявляется ASC или DESC, как обозначено префиксом.
EG из документов:
<!-- Returns array ordered by value of property -->
<p>{{ deepObj | orderBy: 'amount' }}</p>
<!-- Output: [{id: 3, ...}, {id: 4, ...}, {id: 2, ...}, {id: 1, ...}] -->
<p>{{ deepObj | orderBy: '-amount' }}</p>
<!-- Output: [{id: 1, ...}, {id: 2, ...}, {id: 4, ...}, {id: 3, ...}] -->