我有从 API 映射的数据(见下文),我已经达到了很好的水平,但我正在考虑按数字 (0-9) 对其进行排序。我很难用 Vue 做到这一点。如果我的数据在 中是静态的data(){...},我可以通过多种方式完成。但不是来自 API,因为每当我尝试从我的方法中的函数指向它时,由于某种原因我无法指向它。我不知道发生了什么,我希望你们有一些指导。
模板 - 由于 API 的嵌套,我也在嵌套循环。(也许还有更好的方法可以做到这一点。我全神贯注)。allBatches是我的吸气剂。我正在通过我的状态管理器 (Vuex) 提供 API
<div>
<div v-for="batches in allBatches" :key="batches.id">
<div
v-for="dispatchstation in batches.dispatchstation"
:key="dispatchstation.id">
<div v-for="apps in dispatchstation.applications" :key="apps.id">
<div>{{apps}}</div>
</div>
</div>
</div>
</div>
API 中的数据结构 - 我有意省略了无关的数据。中间还有其他层。但这显示了我正在循环和伸出的路径。
"batches": [
{
"dispatchstation": [
{
"applications": [
"384752387450",
"456345634563",
"345634563456",
"567845362334",
"567456745677",
"456734562457",
"789676545365",
"456456445556",
"224563456345",
"456878656467",
"053452345344",
"045440545455",
"045454545204",
"000014546546",
"032116876846",
"546521302151",
"035649874877",
"986765151231",
"653468463854",
"653853121324",
"000145456555"
]
}
]
}
],
我尝试使用 lodash 来做到这一点,并将_.orderBy其用作管道。没运气。我也试过这个:
data() {
return {
sortAsc: true,
sortApps: "" // see explanation
};
},
computed: {
...mapGetters(["allBatches"]),
sortedData() {
let result = this.sortApps;
let ascDesc = this.sortAsc ? 1 : -1;
return result.sort(
(a, b) => ascDesc * a.applications.localeCompare(b.applications)
);
}
},
我通过为 sortApps 提供循环条件dispatchstations.applications和循环来使用(尝试)这种方法v-for='apps in sortedData'。我确定那是错的。Vue 并不是我的强项。
只要数据呈现按数字 ASC 排序,我真的没有任何偏好应该如何。
有什么想法吗?
紫衣仙女
MM们
相关分类