vue 中嵌套循环 input 如何绑定 v-model 的问题

大致业务场景

  • 后台返回需要提交的一份单据的大单数>单数>小单数(例如“大单 1”下面包含“单 1”和“单 2”,每个“单”下面又包含“小单 1”,“小单 2”,“小单 3”)
  • 上面的大单、单、小单都是动态的,由后台返回,前端需要根据“小单数”的数量动态循环出对应的 input 并可输入数量向后台发送

目前遇到的问题

  • 我采用的嵌套循环,即使用三个 v-for 把大单、单、小单三个循环出来,但是最终的 input 的 v-model 绑定上出现问题,无法正确拿到其值
  • 也就是下面代码中 el-input 中的 v-model 该如何写可以正确拿到每个小单里面的值?

相关示例代码

<el-form
  ref="dataForm"
  :model="Data"
  label-position="left"
  label-width="90px"
>
  <el-form-item
     v-for="(item, index) in dan"
     :key="index"
     :label="item['标签']"
   >
     <p
        v-for="(t, x) in item['单数']"
        :key="'ds' + x"
      >
        单{{ t }}
        <el-input
           v-for="(i, k) in item['小单数']"
           :key="k"
           v-model=""
           "
        />
      </p>
   </el-form-item>
</el-form>

export default {

name: 'App',
   data() {
    return {
       dan {
          1: {
             '标签': ‘大单 1’,
             '单数': 2,
             '小单数': 3
             },
          2: {
             '标签': ‘大单 2’,
             '单数': 3,
             '小单数': 5
             }
            }
        }
    }
}
阅读 3k
1 个回答
dan {
    1: {
        '标签': ‘大单 1’,
        '单数': 2,
        '小单数': 3
    },
    2: {
        '标签': ‘大单 2’,
        '单数': 3,
        '小单数': 5
    }
}

转成↓

dan {
    1: {
        '标签': ‘大单 1’,
        '单数': new Array(2),
        '小单数': new Array(3)
    },
    2: {
        '标签': ‘大单 2’,
        '单数': new Array(3),
        '小单数': new Array(5)
    }
}

然后给 v-model 绑定 i

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