我在项目中使用Angular 4.4.6。有一个事件列表,我希望这个列表按日期排序。我通过添加ng2-order-pipe
来实现这一目标// customers.html
<tr *ngFor="let event of customer.events | orderBy: order : reverse">
排序有效但我的问题是如果我添加一个事件,它会被放在列表的末尾,忽略排序。
// customers.ts
this.order = 'date';
this.reverse = true;
.........................................
addEvent(new_date, new_state, new_description) {
var new_event = {
date: new_date,
state: new_state,
description: new_description,
customer_id: this.customer['id']
};
this.customer['events'].push(new_event);
}
如何添加事件以使其根据排序显示在其位置?
答案 0 :(得分:3)
来自:https://angular.io/guide/pipes#pure-and-impure-pipes
Angular忽略(复合)对象内的更改。如果更改输入月份,添加到输入数组或更新输入对象属性,它将不会调用纯管道。
重新分配数组,例如
this.customer['events'] = this.customer['events'].concat(new_event);