首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击OK,将VueDraggable模型数据传回b模式

单击OK,将VueDraggable模型数据传回b模式
EN

Stack Overflow用户
提问于 2019-10-21 19:18:40
回答 1查看 110关注 0票数 1

我们得到了以下模板结构:

代码语言:javascript
复制
        <b-modal
          id="reorder-modal"
          title="Reorder Dashboard"
          @ok="storeNewOrder"
          ok-title="Save"
          ok-variant="success"
          :ok-disabled="disableSave">
            <reorder-modal-row
              :dash-board-data="dashBoardData"
              :disable-save="disableSave"
              @updateDisableSave="updateDisableSave"/>
        </b-modal>

reorder-modal-row本质上是一个可拖动的组件,如下所示:

代码语言:javascript
复制
  <div>
    <draggable-component
      v-model="dashBoardDataClone"
      :move="updatePosition"
      handle=".handle"
      ghost-class="ghost"
      @start="drag=true"
      @end="drag=false">
      <div
        v-for="card in dashBoardDataClone"
        :key="card.id"
        class="card-list-item border p-2 my-3">
          <font-awesome-icon icon="align-justify" class="handle"/>
          {{card.db_name}}
      </div>
    </draggable-component>
  </div>

现在,可拖动组件的模型使用了通过props :dash-board-data传递的数据的克隆。我们试图实现的是,当用户单击b-modal中的Save按钮时,它应该从子对象中收集克隆的数据,并对更新或数据库进行后端调用。问题是我们不确定如何实现这个功能,因为Save按钮不是子按钮的一部分。

我们尝试使用draggable move事件,但每次拖动时都会向父对象发出一个事件。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 22:16:58

我们找到的解决方案是创建数据的副本。将其与子项进行双向绑定,然后单击Save按钮,将原始数据分配给副本。

代码语言:javascript
复制
methods: {
  async loadGridAndContent () {
    let result = await AppService.loadDashboard(this.userDetails.psref)
    this.dashBoardData = result.data[0]
    this.dashBoardDataClone = JSON.parse(JSON.stringify(this.dashBoardData))
  },
  async storeNewOrder () {
    this.dashBoardData = this.dashBoardDataClone
    await AppService.reorderDashboard(this.dashBoardData)
  },
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58485178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档