vue如何在for循环中将指定元素作为计算值

如现在页面上有多个input,我是用element做的,不影响,下面做一个简写

<el-input-number class='ipt'
    v-for="(item,index) in arr"
   v-model.number="item.value"
   :controls="false"
   :precision="2"
   controls-position="right"
   :min="0">
</el-input-number>

arr=[
    {"value"="","name"="main"},
    {"value"="","name"="first"},
    {"value"="","name"="second"},
    {"value"="66","name"="a"},
    {"value"="66","name"="b"},
    {"value"="66","name"="c"}
]

最终要达成的目的,就是在for循环的这些input中,name=main这个input是不可编辑的,而name=first和name=second这两个input是可编辑的,name=main的值由first+second动态完成,应该如何解决呢?

补全一下,不能用index来做,是我疏忽了,必须要利用绑定值来完成

阅读 2k
1 个回答

如果单纯只是你说的意思:

<template>
  <div>
    <input v-for="(item, index) in plusArr" :key="index" v-model="item.value">
  </div>
</template>

<script>
export default {
  props: {},
  components: {},
  data () {
    return {
      arr: [
        { 'value': '1', 'name': 'main' },
        { 'value': '2', 'name': 'first' },
        { 'value': '3', 'name': 'second' },
        { 'value': '66', 'name': 'a' },
        { 'value': '66', 'name': 'b' },
        { 'value': '66', 'name': 'c' }
      ]
    }
  },
  computed: {
    plusArr () {
      this.arr.forEach((element, index) => {
        this.arr[0].value = parseInt(this.arr[1].value) + parseInt(this.arr[2].value)
      })
      return this.arr
    }
  },
  created () {
  },
  methods: {}
}
</script>

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