Сортировка данных в угловых по возрастанию / убыванию по нажатию кнопки - PullRequest
0 голосов
/ 20 января 2019

У меня есть (click), который вызывает функцию sortUser(), которая сортирует данные.Мой HTML выглядит следующим образом.

let isAscendingSort: Boolean = true;
sortUser() {
    console.log('sorting!'); //just to check if sorting is beng called
    this.items.sort((item1: any, item2: any) => this.compare(item1, item2));
  }
  // Sort
  compare(item1: any, item2: any): number {
    let compValue = 0;
      compValue = item1.attributes.fullName.localeCompare(item2.attributes.fullName, 'en', {
        sensitivity: 'base'
      });
    console.log(compValue);
    if (!this.isAscendingSort) {
      compValue = compValue * -1;
    }
    return compValue;
  }
<button (click)="sortData()">Sort Data</button>
<div *ngFor="let item of items">
{{items.attributes.fullName}}
</div>

То, что я хочу, должно сортироваться по возрастанию / убыванию по нажатию кнопки . Но оно будет сортировать только данные по возрастаниюТолько рудер. Я не знаю, что я делаю не так.

1 Ответ

0 голосов
/ 20 января 2019

Похоже, вы забыли щелкнуть выключателем:

private isAscendingSort: boolean = false;

sortUser() {
  console.log('sorting!'); // just to check if sorting is being called
  this.isAscendingSort = !this.isAscendingSort; // you missed this

  this.items.sort((item1: any, item2: any) => this.compare(item1, item2));
}
...