【发布时间】:2021-03-06 22:03:37
【问题描述】:
我有一个array 的元素,但我想显示它并提供一个可拖动 功能 (SortableJS) 但只是其中的一部分array。
为此,我使用了原始数据数组中的计算属性并将数组拆分为两个数组,我使用这些计算数组创建了一个列表,但是当我拖动并尝试重新排序列表时,拖动时似乎有索引有问题,如下面的示例,如果您尝试拖动第一个列表,它不会重新排序,但第二个会。
那么我该如何解决这个问题呢?
new Vue({
el: '#app',
components: { draggable: window.vuedraggable },
data: () => {
return {
numbers: [1, 2, 3, 4, 5, 6]
}
},
computed: {
evens() {
return this.numbers.filter(number => number % 2 === 0);
},
odds() {
return this.numbers.filter(number => number % 2 === 1);
}
}
})
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.8.4/Sortable.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div id="app">
<div style="display: flex;">
<ul style="width: 50%">
<draggable v-model="numbers"
draggable="li">
<transition-group type="transition">
<template v-for="(number, index) in evens">
<li :key="index">{{ number }}</li>
</template>
</transition-group>
</draggable>
</ul>
<ul>
<template v-for="number in odds">
<li>{{ number }}</li>
</template>
</ul>
</div>
</div>
【问题讨论】:
标签: vue.js vuejs2 sortablejs