ソートヘッダー付きの通常のAngularMaterial 2DataTableがあります。すべてのソートはヘッダーが正常に機能します。値としてオブジェクトを持つものを除いて。これらはまったくソートされません。
例えば:
 <!-- Project Column - This should sort!-->
    <ng-container matColumnDef="project.name">
      <mat-header-cell *matHeaderCellDef mat-sort-header> Project Name </mat-header-cell>
      <mat-cell *matCellDef="let element"> {{element.project.name}} </mat-cell>
    </ng-container>
注意してください element.project.name
displayColumnの構成は次のとおりです。
 displayedColumns = ['project.name', 'position', 'name', 'test', 'symbol'];
に変更'project.name'し'project'ても機能しません"project['name']"
何が足りないのですか?これも可能ですか?
Stackblitzは次のとおりです。AngularMaterial2DataTable ソートオブジェクト
編集: すべての回答をありがとう。私はすでにそれを動的データで動作させています。したがって、ネストされた新しいプロパティごとにswitchステートメントを追加する必要はありません。
これが私の解決策です:(MatTableDataSourceを拡張する新しいデータソースを作成する必要はありません)
export class NestedObjectsDataSource extends MatTableDataSource<MyObjectType> {
  sortingDataAccessor: ((data: WorkingHours, sortHeaderId: string) => string | number) =
    (data: WorkingHours, sortHeaderId: string): string | number => {
      let value = null;
      if (sortHeaderId.indexOf('.') !== -1) {
        const ids = sortHeaderId.split('.');
        value = data[ids[0]][ids[1]];
      } else {
        value = data[sortHeaderId];
      }
      return _isNumberValue(value) ? Number(value) : value;
    }
  constructor() {
    super();
  }
}