【发布时间】:2017-11-09 19:56:12
【问题描述】:
请,我需要对通过材料设计表(mat-table)从 redux 商店加载的数据进行排序,这是我的示例:
export class HistoryData extends DataSource<History> {
constructor(private store: Store<fromHistory.State>, private _sort: MatSort) {
super();
}
connect(): Observable<History[]> {
return Observable.combineLatest(
this.store.select(fromHistory.getHistory),
this._sort.sortChange
).map(([history, _]) => {
return this.sortData(history);
});
}
disconnect(collectionViewer: CollectionViewer): void {
console.log('disc');
}
sortData(data: History[]): History[] {
return data.sort((a, b) => {
let propertyA: Date | string = '';
let propertyB: Date | string = '';
[propertyA, propertyB] = [b.updateOn, a.updateOn];
const valueA = isNaN(+propertyA) ? propertyA : +propertyA;
const valueB = isNaN(+propertyB) ? propertyB : +propertyB;
return (valueA < valueB ? -1 : 1) * (this._sort.direction === 'asc' ? 1 : -1);
});
}
}
我的 connect() 方法不起作用,我需要监听 store 和 sortChange 的变化,有人可以帮忙吗? 谢谢
【问题讨论】:
标签: angular redux rxjs angular-material