vue sortable.js拖拽后显示拖拽前的数据怎么解决

托拽后data中数据还是拖拽前的数据,怎么实现拖拽后 data中的数据跟着变成新的顺序!!!

阅读 11.2k
2 个回答

在改变了数据之后 先用一个变量深拷贝这个数据,然后把这个数据清空,最后再在vue的$nextTick函数里面重新给那个数据赋值就可以了,大概代码如下:

mounted : function () {
  var that = this;
  var sortable1 = new Sortable(document.querySelector('#topicNumBox'), {
    sort: true,
    animation: 300,
    onEnd: function (evt) {  //拖拽结束发生该事件
      that.questionData.splice(evt.newIndex, 0, that.questionData.splice(evt.oldIndex, 1)[0]);
      var newArray = that.questionData.slice(0);
      that.questionData = [];
      that.$nextTick(function () {
        that.questionData = newArray;
      });
    },
  });
}
新手上路,请多包涵

不错。。不错。。不错。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏