Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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绑定_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Vue.js获取所有v-model绑定

Javascript Vue.js获取所有v-model绑定,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,使用Vue.js,您可以将表单输入绑定到属性: 我正在进行一个项目,在这个项目中,我“动态”生成了一个表单。这里的v-model绑定只是基于输入的名称设置的属性 但问题是,我一直在想如何正确地获得这些v模型绑定。到目前为止,我所看到的只是人们在其Vue实例上手动设置绑定的属性: new Vue({ el: '...', data: { checkedNames: [] } }) 是否可以在不手动设置数据属性的情况下以某种方式获取所有v-model绑定 当创建一个包含动态字

使用Vue.js,您可以将表单输入绑定到属性:

我正在进行一个项目,在这个项目中,我“动态”生成了一个表单。这里的v-model绑定只是基于输入的名称设置的属性

但问题是,我一直在想如何正确地获得这些v模型绑定。到目前为止,我所看到的只是人们在其Vue实例上手动设置绑定的属性:

new Vue({
  el: '...',
  data: {
    checkedNames: []
  }
})
是否可以在不手动设置数据属性的情况下以某种方式获取所有
v-model
绑定

当创建一个包含动态字段数的动态表单时,这将非常有帮助

我猜一个选项就是简单地用javascript从输入中检索名称atributes,但我希望可能已经有了一些东西,因为
v-model
可能正在调用Vue实例中已知的setter

修改了答案中的示例:

根据:

可以使用
Vue.set(object,key,value)
方法向嵌套对象添加被动属性

这意味着您的起始
数据可以是以下内容:

{
  customForm: [],
  values: {}
}
让我们假设
customForm
是一个字段对象数组,用于描述自定义表单中的一组字段。开始时它是空的,因为您说表单将动态创建

生成该动态数据后,只需将其分配给
customForm
,然后循环使用前面提到的
Vue.set
方法添加反应性属性


下面是一个例子。我使用的是
this.$set
,但这只是
Vue.set
的别名,回答得非常好。另一方面,
模型可以按如下方式重新分配:
this.values=myNewForm.reduce((model,field)=>{model[field.id]='';return model},{})您正在从Vue.js本身中指定的数组呈现表单。当您只是将Vue连接到预定义的HTML表单时,是否也可以这样做?我正在尝试重构JSFIDLE,但我不确定这是否可行。谢谢你迄今为止的帮助!没关系,根据你的例子得到答案: