Я пытаюсь отобразить список перетаскиваемых элементов, используя vue-draggable , которые иногда разделяются фиксированным элементом в заданных позициях.
До сих пор я пробовал следующий подход: создание другого элемента при необходимости внутри цикла v-for
.
<draggable :list="list" class="dragArea" :class="{dragArea: true}"
:options="{group:'people', draggable: '.drag'}" @change="handleChange">
<template v-for="(element, index) in list">
<div class="drag">
{{element.name}}
</div>
<div class="nodrag" v-if="index === 2">Fixed element</div>
</template>
</draggable>
Однако это нарушает поведение моего приложения, так как индексы, возвращаемые событием onChange
, уже не соответствуют ожидаемым. (Вы можете проверить воспроизведение на этот jsfiddle )
Я делаю это неправильно? Я также подумал об использовании опоры move
для отключения возможности перетаскивания, как предлагалось здесь , но проблема остается, потому что я использую элемент вне перетаскиваемого списка, как мне кажется.
В нашем производственном сценарии индекс фиксированного элемента является переменным, если это имеет значение.