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