Vue 可拖动不更新索引
Vue draggable not updating index
我正在使用 Vue draggable 在类别之间拖动列表:
<draggable v-bind="dragOptions" @change="dragCat">
<div v-for="cat in categories" :key="cat.id">
<draggable v-model="cat.lists" v-bind="dragOptions"
group="categories" @change="dragList(cat)">
<div v-for="list in cat.lists" :key="list.id">
{{list.title}}
</div>
</draggable>
</div>
</draggable>
import draggable from "vuedraggable";
var vm = new Vue({
el: "#app",
components: {
draggable
},
data() {
return {
categories: [
{lists: [{title: "A"}, {title: "B"}]},
{lists: [{title: "C"}, {title: "D"}]},
{lists: [{title: "E"}, {title: "F"}]},
],
}
},
methods: {
dragCat() {
// Loop through categories with index
...
},
dragList(cat) {
// Loop through cat.lists with index
...
},
}
....
});
因为内部可拖动的组,我可以在类别之间拖动。但是外部可拖动不起作用,不会调用更改方法。当我改为使用 change 时,类别确实被移动并且函数被调用但循环中的索引没有更新。
表示:初始 0(A,B) - 1(C,D) - 2 (E,F)
我将切换 0 和 1:
预期:0(C,D) - 1(A,B) - 2(E,F)
现实:1(C,D) - 0(A,B) - 2(E-F)
所以我无法向数据库发送新索引,这意味着,当我移动类别并刷新时,它又回到了初始状态。
您没有将类别绑定到外部可拖动对象,将 v-model 添加到第一个可拖动对象将解决此问题,v-model="categories"
此外,在列表中使用正确的键可能会有所帮助,Vue 需要该键来识别对列表的任何更改
我正在使用 Vue draggable 在类别之间拖动列表:
<draggable v-bind="dragOptions" @change="dragCat">
<div v-for="cat in categories" :key="cat.id">
<draggable v-model="cat.lists" v-bind="dragOptions"
group="categories" @change="dragList(cat)">
<div v-for="list in cat.lists" :key="list.id">
{{list.title}}
</div>
</draggable>
</div>
</draggable>
import draggable from "vuedraggable";
var vm = new Vue({
el: "#app",
components: {
draggable
},
data() {
return {
categories: [
{lists: [{title: "A"}, {title: "B"}]},
{lists: [{title: "C"}, {title: "D"}]},
{lists: [{title: "E"}, {title: "F"}]},
],
}
},
methods: {
dragCat() {
// Loop through categories with index
...
},
dragList(cat) {
// Loop through cat.lists with index
...
},
}
....
});
因为内部可拖动的组,我可以在类别之间拖动。但是外部可拖动不起作用,不会调用更改方法。当我改为使用 change 时,类别确实被移动并且函数被调用但循环中的索引没有更新。
表示:初始 0(A,B) - 1(C,D) - 2 (E,F) 我将切换 0 和 1: 预期:0(C,D) - 1(A,B) - 2(E,F) 现实:1(C,D) - 0(A,B) - 2(E-F)
所以我无法向数据库发送新索引,这意味着,当我移动类别并刷新时,它又回到了初始状态。
您没有将类别绑定到外部可拖动对象,将 v-model 添加到第一个可拖动对象将解决此问题,v-model="categories"
此外,在列表中使用正确的键可能会有所帮助,Vue 需要该键来识别对列表的任何更改