【发布时间】:2021-05-19 14:13:13
【问题描述】:
我目前有代码引用 vuejs 包来处理拖放,它正在工作。
包:
- src="//cdn.jsdelivr.net/npm/sortablejs@1.8.4/Sortable.min.js"
- src="//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.19.2/vuedraggable.umd.min.js"
- src="//unpkg.com/axios/dist/axios.min.js"
我有一系列复选框项,它们都绑定到一个名为“choices”的 v-model。
模板代码片段:
<div class="form-group"> // One of the labels for the checkboxes...
<div class="col-sm-2" style="text-align: center">
<label class="control-label">@lang('messages.fields.category')</label>
@include('v1.parts.tooltip', ['title' => trans('messages.admin.api.api_info_cat')])
</div>
// Other labels for checkboxes not shown
</div>
<div class="form-group"> // One of the checkboxes... others not shown
<div class="col-sm-2">
<input type="checkbox" class="form-control input-sm" v-model="choices"
id="{{ trans('messages.fields.category') }}"
value="{{ trans('messages.fields.category') }}"
name="category">
</div>
// Other checkboxes not shown
<div class="col-sm-4">
<p>
@lang('messages.admin.api.api_instr2')
</p>
// This is the portion to the right of screenshot, populated as boxes are checked
<draggable tag="ul" v-model="choices" @start="drag=true" @end="drag=false" handle=".handle">
<div class="list-group-item" v-for="choice in choices">
@{{ choice }} <i class="handle fas fa-arrows-alt pull-right"></i>
</div>
</draggable>
</div>
复选框值当前是人类可读的英语(尽管当前使用本地化)单词,选中后会显示在列表中,然后可以拖放以进行手动排序。随着复选框被选中和/或列表被排序,标记为“事件文本”的红色文本(屏幕截图)会更新。
我想保留该功能(使用人类可读的项目以便显示它们),但我还希望在一个数组中拥有一组对应的值,这些值包含单个单词名称(也称为变量名称),以便于使用在我的应用程序的另一个区域中进行引用、本地化处理和其他处理。
因此,我希望两个数组根据用户对正在拖放的数组所采取的操作保持同步。
我希望我想要实现的目标是有意义的。另一种方法——解析当前的英语单词——是可能的,但一旦引入本地化就会中断,因为那样显示的单词就不是英语了。
提前致谢。
【问题讨论】:
标签: arrays laravel vue.js synchronization draggable