我在我的项目中使用 vue、vuedraggable 和 vuetify。
我无法使用 let 为我的循环定义我的索引,它总是未定义。此方法被可拖动的事件调用。但是,使用 var 而不是 let 可以。为什么 let 总是未定义?
即使我直接将变量 i 分配给 1 它仍然是未定义的。例如 for(let i = 1; i < 2; i++) 仍然导致 i 在 for 循环中等于 undefined。
这是我看到问题的地方
updateOrderNumbers(draggedContext) {
if (draggedContext.index < draggedContext.futureIndex) {
for (let i = draggedContext.index; i < draggedContext.futureIndex; i++) {
let swapIndex = this.orderTableData[i].sortOrder;
this.orderTableData[i].sortOrder = this.orderTableData[i+1].sortOrder ;
this.orderTableData[i+1].sortOrder = swapIndex;
}
}
if (draggedContext.index > draggedContext.futureIndex) {
for (let i = draggedContext.index; i > draggedContext.futureIndex; i--) {
let swapIndex = this.orderTableData[i].sortOrder;
this.orderTableData[i].sortOrder = this.orderTableData[i+1].sortOrder;
this.orderTableData[i+1].sortOrder = swapIndex;
}
}
}
从这里调用此方法
onMoveCallback(evt){
this.updateOrderNumbers(evt.draggedContext)
this.checkForChanges()
}
这是触发呼叫的元素。
<draggable v-model="orderTableData" :move="onMoveCallback" tag="tbody">