Html Teradata共价数据表(sortChange)输出不';t排序表列

Html Teradata共价数据表(sortChange)输出不';t排序表列,html,angular,teradata-covalent,Html,Angular,Teradata Covalent,我正在尝试对Teradata共价数据表的所有列进行排序。我正在使用原子表组件,因为我必须向表中添加操作按钮。据我从文档中了解,(sortChange)输出用于在我添加排序逻辑的组件代码中调用函数?出于某种原因,我的排序函数从不对列进行排序。。。知道我做错了什么吗 更新 我看到当调用排序函数时,ITdDataTableSortChangeEvent的name属性总是空的,而不是包含特定列的名称。。。知道如何将该事件传递给具有列的name属性集的sort函数吗 my html code? 更新2

我正在尝试对Teradata共价数据表的所有列进行排序。我正在使用原子表组件,因为我必须向表中添加操作按钮。据我从文档中了解,(sortChange)输出用于在我添加排序逻辑的组件代码中调用函数?出于某种原因,我的排序函数从不对列进行排序。。。知道我做错了什么吗

更新 我看到当调用排序函数时,ITdDataTableSortChangeEvent的name属性总是空的,而不是包含特定列的名称。。。知道如何将该事件传递给具有列的name属性集的sort函数吗

my html code?
更新2 在@Chic的建议之后,我可以看到传递给sort函数的事件包含正确的数据,但是列仍然没有得到排序

My filter function:

filter(): void {
        let newData: IEmployee[] = this.employees;
        let excludedColumns: string[] = this.columns
            .filter((column: ITdDataTableColumn) => {
                return ((column.filter === undefined && column.hidden === true) ||
                (column.filter !== undefined && column.filter === false));
            }).map((column: ITdDataTableColumn) => {
            return column.name;
        });
    newData = this._dataTableService.filterData(newData, this.searchTerm, true, excludedColumns);
    this.filteredTotal = newData.length;
    newData = this._dataTableService.sortData(newData, this.sortBy, this.sortOrder);
    newData = this._dataTableService.pageData(newData, this.fromRow, this.currentPage * this.pageSize);
    this.filteredEmployees = newData;
  }

<table *ngIf="filteredEmployees.length > 0" td-data-table>
                <thead>
                    <tr td-data-table-column-row>
                        <th td-data-table-column [sortable]="true" [sortOrder]="'ASC'"  *ngFor="let column of columns" (sortChange)="sort($event)">
                            {{column.label}}
                        </th>
                        <th>
                            Action
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <tr td-data-table-row *ngFor="let row of filteredEmployees">
                        <td td-data-table-cell *ngFor="let column of columns">
                                {{row[column.name]}}
                        </td>
                        <td>
                            <mat-icon class="fa fa-edit fa-2x" (click)="editCashier(row)" matTooltip="Edit Cashier"></mat-icon>
                            <mat-icon class="fa fa-trash fa-2x" title="Delete" (click)="deleteCashier(row)" matTooltip="Delete Cashier" aria-label="Delete"></mat-icon>
                        </td>
                    </tr>
                </tbody>
            </table>

my sort function:

sort(sortEvent: ITdDataTableSortChangeEvent): void {
      console.log("sort called");
        this.sortBy = sortEvent.name;
        console.log(sortEvent.name);
        this.filter();
    }
My filter函数:
filter():void{
让newData:ieemployee[]=this.employees;
让excludedColumns:string[]=this.columns
.filter((列:ITdDataTableColumn)=>{
返回((column.filter==undefined&&column.hidden==true)||
(column.filter!==未定义&&column.filter===false));
}).map((列:ITdDataTableColumn)=>{
返回column.name;
});
newData=this.\u dataTableService.filterData(newData,this.searchTerm,true,excludedColumns);
this.filteredTotal=newData.length;
newData=this.\u dataTableService.sortData(newData,this.sortBy,this.sortOrder);
newData=this.\u dataTableService.pageData(newData,this.fromRow,this.currentPage*this.pageSize);
this.filteredEmployees=新数据;
}
{{column.label}}
行动
{{row[column.name]}
我的排序功能:
排序(sortEvent:ITdDataTableSortChangeEvent):无效{
log(“被调用的排序”);
this.sortBy=sortEvent.name;
控制台日志(sortEvent.name);
这个.filter();
}

您需要在
td数据表列
组件上设置
[name]=“column.name”
输入。这是在应用程序中使用的


另外,请确保每次筛选触发更改检测时,筛选函数都在更改数组引用(即创建新数组)。对于版本
1.0.0-rc.0
,这不是自动完成的,但将来会为您完成。

谢谢,现在我可以看到事件包含正确的数据。但是,表仍然没有得到排序。我在问题中添加了过滤功能。知道原因是什么吗?出于某种奇怪的原因,当我使用硬编码字符串作为列名进行排序时,它工作了……现在出于某种原因,排序开始工作了。谢谢我还有一个问题,那就是当单击可排序的列标题时,箭头不会反转。知道为什么会这样吗?