如何用特定的标准对angular ngx数据表进行排序



我正在开发一个有角度的表视图,ngx数据表,我有几个可以排序的列。例如,我有一个专栏叫做"full prize"。它显示了两个字段的添加,这是行。Price1和row.price2。当我单击列名时,我希望根据全值对表进行排序。但由于全部奖金是计算出来的,我无法直接获得。

<ngx-datatable-column name="full price" prop="price1">
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.price1+ row.price2}}
</ng-template>
</ngx-datatable-column>
上面给出的是用price1排序的方法。但如何与全奖排序?

有人能帮忙吗?谢谢你。

我们可以按照以下的特定标准进行排序。

使用比较器函数,我们可以用自定义逻辑比较两行。

private compareByPrice(a, b): number {
var priceA = a['price1'] + a['price2'] ;
var priceB = b['price1'] + b['price2'] ;
if (priceA > priceB) {
return 1;
}else if (priceA < priceB) {
return -1;
}else {
return 0;
}
}

那么我们可以在html中将这个函数设置为comparator。

<ngx-datatable-column prop="" name="Price" [comparator]="compareByPrice">
<ng-template ngx-datatable-cell-template let-row="row">
{{row.price1 + row.price2}}
</ng-template>
</ngx-datatable-column>

注意:prop值必须设置为"防止默认排序。

您可以为列传递一个自定义比较器函数https://swimlane.gitbook.io/ngx-datatable/api/column/inputs#comparator

最新更新