即使数据没有,管道的数组顺序也会发生变化

时间:2017-08-29 18:10:15

标签: angular angular-pipe

我创建了以下管道:

@Pipe({
  name: 'orderBy',
  pure: false
})
export class OrderByPipe implements PipeTransform {

  transform(array: Array<any>, orderProperty: string): Array<any> {
    array.sort((a: any, b: any) => {
      if (a[orderProperty] < b[orderProperty]) {
        return -1;
      } else if (a[orderProperty] > b[orderProperty]) {
        return 1;
      } else {
        return 0;
      }
    });
    return array;
  }

}

用法:

<div class="patient-box level-1" draggable="true" *ngFor="let bed of (beds | orderBy: order)" (dragstart)="onDrag($event, patient)">

我知道不纯净的管道经常更新。我不明白的是,即使没有数据发生变化,我的数组顺序也会发生变化。我有3个属性可以按顺序排列对象,并且由于某种原因它只发生了两个属性,并且它们是不断改变位置的3个对象。

我知道弄清楚所提供的信息有什么问题可能并不容易,但我希望有人能够提供一些线索。如果有任何帮助,那么更改位置的三个对象在排序数组的属性中具有相同的值,尽管还有其他具有该值的对象也没有移动。

0 个答案:

没有答案