Angular Material 2 DataTable Sorting with nested objects

前端 未结 11 891
孤街浪徒
孤街浪徒 2020-11-29 17:25

I have a normal Angular Material 2 DataTable with sort headers. All sort are headers work fine. Except for the one with an object as value. These doesn\'t sort at all.

11条回答
  •  时光取名叫无心
    2020-11-29 18:07

    The answer as given can even be shortened, no switch required, as long as you use the dot notation for the fields.

    ngOnInit() {
      this.dataSource = new MatTableDataSource(yourData);
    
      this.dataSource.sortingDataAccessor = (item, property) => {
         if (property.includes('.')) return property.split('.').reduce((o,i)=>o[i], item)
         return item[property];
      };
    
      this.dataSource.sort = sort;
    }
    

提交回复
热议问题