【发布时间】:2016-06-02 19:23:22
【问题描述】:
我正在尝试使用 vuejs 和 jquery ui 创建一个带有删除功能的可排序列表我有以下结果
请检查以下 jsfiddle
https://jsfiddle.net/reda84/7ojgvwdw/
删除功能正在工作,但是一旦您开始对删除进行排序,则删除剂量不再适用于已排序的项目及其下方的项目。
如果我像下面的小提琴那样将两个组件组合在一起,它可以正常工作,但我不希望这样,因为原始应用程序更复杂,组件更复杂,我想将它分开。
https://jsfiddle.net/reda84/jv7zhz1u/
TLDR: 这是代码
var listItem = Vue.extend({
template: '<li class="ui-state-default">{{item.title}} {{item.id}} <span v-on:click="remove(item)"> x </span></li>',
props: {
item: Object
},
methods: {
remove: function(item) {
this.$dispatch('remove-item', item)
}
}
});
var sortableList = Vue.extend({
template: '<ul id="sortable"><list-item v-for="item in list" :item="item" class="ui-state-default"></list-item></ul>',
data: function() {
return {
list: [{ id: 1, title: "Item"},
{ id: 2, title: "Item"},
{ id: 3, title: "Item"}]
}
},
events: {
"remove-item": function(item) {
var index = this.list.indexOf(item)
this.list.splice(index, 1);
}
},
components: {
listItem
},
});
new Vue({
el: 'body',
ready: function() {
$("#sortable").sortable();
$("#sortable").disableSelection();
},
components: {
sortableList
},
});
【问题讨论】: