2017-07-27 51 views
2

我有使用Vue.js和庫VueDraggable(https://github.com/SortableJS/Vue.Draggable) 這裏是代碼的示例的問題:Vue.js/vuedraggable:添加「V-模型」發送給拖動使得它不可拖動

<draggable v-if="n === 2 && track.getDisplayArray()[1].length !==0" 
     element="ul" 
     :options="{group:'layers '+ track.itemId}" 
     v-bind:class="{ hidden: !track.show, 'child-container': track.show }" 
     v-model="track.getDisplayArray()[1]" 
     :move="onMove" 
     @start="onStart" 
     @end="onFinished"> 
     <li class="item" v-bind:class="{ hidden: !layer.show, child: layer.show }" 
      v-for="layer in track.getDisplayArray()[1]"> 
      <span>{{layer.name}}</span> 
      <img class="item-view" src="static/img/ic_view.svg" alt="view"> 
     </li> 
</draggable> 

onMove函數只是返回true,在onStart和onFinished是空的(但我想與他們做的東西在未來;))

當「v型」屬性是在這裏,這是創造了李標籤不能被交換。

當我刪除此屬性時,可以交換li標籤。

您是否看到問題?它們在我不知道的某些屬性之間有些「衝突」嗎?

+0

控制檯中的任何消息?如果你用':value'替換'v-model',會發生什麼? –

+0

控制檯中沒有消息。有人在這裏對我說要改變V模型的價值(但不幸的是他/她刪除了他/她的答案o_o)......但問題依然存在。我找到了一個解決方案,請參閱下面的答案。隨意評論,如果你有另一種解決方案,它可能會很有趣:) –

回答

1

我找到了我的問題的解決方案。將v-model更改爲值並不會改變任何內容,因爲它們沒有看到它們鏈接到的列表中的更新。

我用屬性「list」替換了「v-model」屬性。

根據文檔:

的主要差別是該列表丙 通過使用拼接方法可拖動部件更新,而值 是不可變的。