如何使用特定条件对 angular ngx 数据表进行排序
How to sort angular ngx datatable with specific criteria
我正在使用 angular、ngx 数据 table 开发一个 table 视图,其中几乎没有可以排序的列。例如,我有一个名为“全奖”的列,其中显示添加了两个字段,即 row.price1 和 row.price2。当我点击列名时,我想根据全奖对 table 进行排序。但是由于全奖金额是计算出来的,所以不能直接拿到。
<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排序的方法。但是全奖如何排序呢?
谁能帮忙解决这个问题。谢谢。
您可以为列 https://swimlane.gitbook.io/ngx-datatable/api/column/inputs#comparator
传递自定义比较器函数
我们可以按照以下方式按照特定标准进行排序。
使用比较器函数,我们可以使用自定义逻辑比较两行。
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.
中将这个函数设置为比较器
<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 值必须设置为 "" 以防止默认排序。
我正在使用 angular、ngx 数据 table 开发一个 table 视图,其中几乎没有可以排序的列。例如,我有一个名为“全奖”的列,其中显示添加了两个字段,即 row.price1 和 row.price2。当我点击列名时,我想根据全奖对 table 进行排序。但是由于全奖金额是计算出来的,所以不能直接拿到。
<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排序的方法。但是全奖如何排序呢?
谁能帮忙解决这个问题。谢谢。
您可以为列 https://swimlane.gitbook.io/ngx-datatable/api/column/inputs#comparator
传递自定义比较器函数我们可以按照以下方式按照特定标准进行排序。
使用比较器函数,我们可以使用自定义逻辑比较两行。
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.
中将这个函数设置为比较器<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 值必须设置为 "" 以防止默认排序。