我有一个像这样的 json 对象列表(载体):
在我的 *.vue 中,我将其渲染为:
<tr v-for="carrier in this.carriers">
<td>{{ carrier.id }}</td> ....
可以单击我的 thead / th's 对表进行排序,如下所示:
<thead>
<tr>
<th class="pointer link" @click="sort('id')">
ID
<span v-if="'id' === currentSortCol">
{{currentSortDir ==='asc' ? '↑':'↓'}}
</span>
</th>
<th class="pointer link" @click="sort('region.name')">
Region
<span v-if="'region.name' === currentSortCol">
{{currentSortDir ==='asc' ? '↑':'↓'}}
</span>
</th>....
我的排序方法是这样的:
sort(col) {
if (this.currentSortCol === col) {
this.currentSortDir = this.currentSortDir === "asc" ? "desc" : "asc";
} else {
this.currentSortCol = col;
}
this.carriers.sort(this.sortBy(col, this.currentSortDir));
},
sortBy(property, order) {
this.currnetSortDir=order;
return function(a, b) {
const varA =
typeof a[property] === "string"
? a[property].toUpperCase()
: a[property];
const varB =
typeof b[property] === "string"
? b[property].toUpperCase()
: b[property];
let comparison = 0;
if (varA > varB) comparison = 1;
else if (varA < varB) comparison = -1;
return order === "desc" ? comparison * -1 : comparison;
};
}
问题: 排序 asc, desc 与 ID (Carrier.id) 配合良好。但它不会对嵌套的 Carrier.region.name 列进行排序。如何对嵌套列进行排序,例如载体.区域.名称?
幕布斯7119047
相关分类