vue动态绑定模型失败

比如说

当前这个vue组件下有一个变量key的值为tel,我想让一个input组件根据这个key值的不同,绑定到不同的变量上,比如说key为tel这个字符串的时候,绑定到'create.form.'+key也就是绑定到create.form.key上。这就是动态绑定。请问一下vue中可以实现这种绑定吗?

<Input :v-model="'create.form.'+a"></Input>

其中a是'tel'

甚至是

<Input :v-model="'create.form.tel'"></Input>

绑定之后,实际修改create.form.tel这个数据,并没有反映在input输入框中,说明没有绑定上,请问一下原因是什么呢?vue不允许这样绑定吗?

阅读 5.1k
4 个回答

直接v-model="create.form.tel" 不要用冒号

<input v-model="something">

其实只是

<input
  v-bind:value="something"
  v-on:input="something = $event.target.value">

的语法糖

这个问题可以用computed,以下代码

  <input v-model='com'>
  data () {
    return {
      type: 'a',
      form: {
        a: 123,
        b: 321
      }
    }
  },
  computed: {
    com () {
      return this.form[this.type]
    }
  },
  created () {
    setTimeout(() => {
      this.type = 'b'
    }, 1000)
  }

(为什么想动态改键而不是动态改值?

你这样子实际上绑定到一个字符串去了

<Input v-model="{{'create.form.'+a}}"></Input>

没有这指令,而且为什么你input要大写啊?

clipboard.png

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