javascript - 如何将 v-model 属性定义为动态对象?
问题描述
我正在构建一个动态表单,允许用户通过单击按钮(“adicionar condição”)添加更多字段。像打印屏幕:
此表单的每一行都基于以下数据:
groups: [
{
connective: 'and',
conditions: [
{
type: 'lead_prop',
field: 'tags',
condition: 'has',
value: ''
}
]
}
]
当用户按下“adicionar condição”按钮时,一个新对象被推送到条件数组,如下所示:
<v-btn @click="addCondition(i)">Adicionar condição</v-btn>
addCondition(index) {
this.groups[index].conditions.push({
type: 'lead_prop',
field: 'tags',
condition: 'has',
value: ''
});
}
如您所见,我正在使用 vuetify 自动完成功能,这就是问题所在。每次我向组的条件数组中添加一个新的条件对象时,看起来自动完成组件的 v-model 是相同的。如果我更改新自动完成的值,前一个会得到相同的值,如下所示:
如果我更改“标签”字段,所有现有的自动完成功能也会收到该值。这就是我绑定自动完成模型的方式:
<v-autocomplete
v-model="g.conditions[index].value"
:items="tags"
:teste="index"
:loading="isLoading"
:search-input.sync="search"
color="white"
hide-no-data
hide-selected
item-text="tag"
item-value="id"
label="Tags"
placeholder="Comece a digitar para procurar"
prepend-icon="mdi-tag"
return-object>
如何将每个标签自动完成字段绑定到条件数组中的对象?
这就是我迭代数据的方式:
<v-card v-for="(g, i) in groups" :key="i">
<v-row v-for="(c, index) in g.conditions" :key="index">
解决方案
解决此问题的一种方法是创建一个内部具有自动完成功能的轻量级组件,然后公开属性以更改模型。
推荐阅读
- powershell - 具有运行空间而不是 foreach 循环的多线程
- github - 如何一次更新多个提交的状态
- c# - 如何从测试项目中读取 API 项目的启动设置?
- winapi - SspiPromptForCredentials 目标名称
- javascript - Three.js 360 图像 - 纹理标记为更新,但图像不完整
- javascript - 阿拉伯语脚本在 Google 的开发者工具模拟器上呈现不正确
- android - 有没有办法为按钮创建 android:text 状态选择器?
- java - cucumber.runtime.CucumberException:初始化浏览器时添加cookie时无法实例化类stepDefinitions
- python - 如何重新启动女服务员?
- php - 使内爆语句按我需要的方式工作