Я использую vue, vuedraggable и vuetify в моем проекте.
Я не могу использовать let, чтобы определить мой индекс для моего l oop, он всегда не определен. Этот метод вызывается событием из draggable. Однако использование var вместо let работает. Почему let всегда неопределена?
Даже когда я непосредственно назначаю переменную i 1, она все еще не определена. Например, для (пусть i = 1; i <2; i ++) все еще приводит к тому, что я равен неопределенному внутри для l oop. </p>
. Здесь я вижу проблему
* 1008. *
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">