向 v-for 中使用的对象添加新属性
Add new properties to an object used in v-for
我想将我的产品组件中的数据(来自两个 v-text-fields
)添加到我传递给服务器的数据中。因此,如果用户将值“444”和“230”添加到 v-text-fields
,条目将是:
{
"444": 230
}
到目前为止,我已经对“444”进行了硬编码,并设法获得了值“230”。但是我如何根据来自 v-text-field
?
的用户输入同时传递“444”和“230”
product.vue
<v-content>
<v-container>
<code>formData:</code> {{ formData }}<br />
<v-btn color="primary" @click="create">Save</v-btn>
(Check console)<br />
<v-row>
<v-col>
<v-text-field v-for="(value, key) in formData" :key="key"
label="Card Type" v-model="formData[key]"
></v-text-field>
</v-col>
</v-row>
</v-container>
</v-content>
data() {
return {
dialog: false,
product: null,
error: null,
formData: {
444: null,
}
}
},
methods: {
async create() {
try {
await ProductService.create(this.formData);
} catch (error) {
this.error = error.response.data.message
}
}
}
我需要在我的组件中进行哪些更改,以便 formData 基于来自另一个 v-text-field
的用户输入?
我记得。要向该基本 formData
哈希添加一个新项目,您可以这样做:
<div>
<v-text-field label="Product #" v-model="newKey"></v-text-field>
<v-text-field label="Card Type" v-model="newValue"></v-text-field>
<v-btn @click="$set(formData, newKey, newValue)">+</v-btn>
</div>
这使用 $set
将新属性添加到 formData
。
我想将我的产品组件中的数据(来自两个 v-text-fields
)添加到我传递给服务器的数据中。因此,如果用户将值“444”和“230”添加到 v-text-fields
,条目将是:
{
"444": 230
}
到目前为止,我已经对“444”进行了硬编码,并设法获得了值“230”。但是我如何根据来自 v-text-field
?
product.vue
<v-content>
<v-container>
<code>formData:</code> {{ formData }}<br />
<v-btn color="primary" @click="create">Save</v-btn>
(Check console)<br />
<v-row>
<v-col>
<v-text-field v-for="(value, key) in formData" :key="key"
label="Card Type" v-model="formData[key]"
></v-text-field>
</v-col>
</v-row>
</v-container>
</v-content>
data() {
return {
dialog: false,
product: null,
error: null,
formData: {
444: null,
}
}
},
methods: {
async create() {
try {
await ProductService.create(this.formData);
} catch (error) {
this.error = error.response.data.message
}
}
}
我需要在我的组件中进行哪些更改,以便 formData 基于来自另一个 v-text-field
的用户输入?
我记得formData
哈希添加一个新项目,您可以这样做:
<div>
<v-text-field label="Product #" v-model="newKey"></v-text-field>
<v-text-field label="Card Type" v-model="newValue"></v-text-field>
<v-btn @click="$set(formData, newKey, newValue)">+</v-btn>
</div>
这使用 $set
将新属性添加到 formData
。