2
我想結合在一個Vue.js排序列表,但沒有更新的基礎數據列表:如何將可排序列表綁定到vuejs?
Vue.component('lessons', {
template: "#lessons-template",
data: function() {
return {
list: ['Item 1', 'Item 2', 'Item 3']
};
},
methods: {
onChange: function(evt) {
console.log(this.list); // allways ['Item 1', 'Item 2', 'Item 3']
}
},
ready: function(value) {
Sortable.create(this.$els.sortable, {
draggable: 'li',
onSort: this.onChange
});
}
});
new Vue({ el: 'body'});
ul { list-style: none;}
ul li { padding: 10px; display: block; background: #EFEFEF; margin-bottom: 5px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.js"></script>
<script src="http://rubaxa.github.io/Sortable/Sortable.js"></script>
<div>
<lessons></lessons>
</div>
<template id="lessons-template">
<ul v-el:sortable>
<li v-for="item in list">{{ item }}</li>
</ul>
<pre>{{ list | json }}</pre>
</template>
人,非常酷。 –
我有一個問題,它的行爲就像我拖動它時沒有綁定一樣,並且只在我釋放/放置該項目後才被綁定。這對我來說是一個問題,因爲我在後臺進行AJAX調用,當我得到更新時,Vue會插入一個新元素,因此我有重複的內容 –
@ ErikBerkun-Drevnig您必須在ajax調用中出錯,或者最有可能,你在哪裏或在哪裏運行它們。基本上,你會在更新時運行你的ajax調用,否則沒有任何改變,並且不需要任何調用。這應該是非常簡單的。如果您創建了一個複製場景的小提琴,我可以爲您解決問題。 – crabbly