Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript vue.js v-model绑定到json对象的子属性_Javascript_Vue.js - Fatal编程技术网

Javascript vue.js v-model绑定到json对象的子属性

Javascript vue.js v-model绑定到json对象的子属性,javascript,vue.js,Javascript,Vue.js,我有一个名为valuesRequired的JSON对象,它列出了我为其他目的而对其进行区分的所有值。我想做的是使用这个已经创建的对象绑定到输入。我似乎找不到办法来做这件事 这是代码,我只提供了必要的方面来说明我想要做什么,而不是所有其他方法等。我想要做的方面是明确的v-model=“valuesRequired.{{item.name}}}”,在下面的示例中,这将是v-model=“valuesRequired.foo” {{item.description}} 导出默认值{ 数据:函数

我有一个名为
valuesRequired
的JSON对象,它列出了我为其他目的而对其进行区分的所有值。我想做的是使用这个已经创建的对象绑定到输入。我似乎找不到办法来做这件事

这是代码,我只提供了必要的方面来说明我想要做什么,而不是所有其他方法等。我想要做的方面是明确的
v-model=“valuesRequired.{{item.name}}}”
,在下面的示例中,这将是
v-model=“valuesRequired.foo”

  • {{item.description}}
导出默认值{ 数据:函数(){ 返回{ 所需值:{ 傅:“酒吧” } } } }
目前为了解决这个问题,我正在动态地将属性添加到
this.$data
中,但这需要我将它们映射到
所需的
值对象中

非常感谢你的帮助

当默认值为文本时,使用
{{item.name}
您的问题是,当您执行
v-model='valuesRequired.{{item.name}}'
时,这将被呈现为
v-model='valuesRequired.{{My name}}'

本质上,传递给
v-model
的文本是作为JavaScript计算的,因此,您应该使用括号表示法访问
item.name
处所需的

Vue.js脚本设置:

new Vue({
  el: "#app",
  data: {
    item: {
      name: 'foo'
    },
    valuesRequired: {
      foo: 'bar',
      baz: 'faz'
    }
  }
})
<div id="app">
  <input type='text' v-model='valuesRequired[item.name]' />
  <p>
    {{valuesRequired}}
  </p>
</div>
Vue.js HTML模板:

new Vue({
  el: "#app",
  data: {
    item: {
      name: 'foo'
    },
    valuesRequired: {
      foo: 'bar',
      baz: 'faz'
    }
  }
})
<div id="app">
  <input type='text' v-model='valuesRequired[item.name]' />
  <p>
    {{valuesRequired}}
  </p>
</div>


{{valuesRequired}}


{{item.name}}
没有任何作用,它已经将
v-model
中的所有内容作为代码进行读取,因此您应该编写
v-model='valuesRequired[item.name]'
@chbchb55很难知道vuejs的魔力何时会停止,这是完美的。介意把它作为答案,这样我就可以把它标记为正确的吗?那不是Vue magic;它是纯javascript。我把它作为answer@Bert哈哈,我知道这是JavaScript——我的意思是我不知道vue模板中允许/不允许的内容。我已经让vue linter用我尝试过的其他各种方法对我大喊大叫,比如使用把手方法动态访问所需对象的值。