vue.js - 如何在 Vue 中通过 v-model 获取输入值
问题描述
我有一个通过点击事件生成输入的按钮。我想通过 v-model 而不是 $ref 获取输入值,但我知道该值未定义,我该如何实现?这是我的代码:
<div class="price-round-creation-containe" v-for="(shareholder, index) in shareholders" :key="index">
<div>
<input v-model="shareholder.username" :name="`shareholders[${index}][username]`" type="text" class="form-control input" >
</div>
<div>
<input v-model="shareholder.investment" :name="`shareholders[${index}][investment]`" type="text" class="form-control input" >
<i v-if="shareholder.dynamic" class="fas fa-trash" @click="deleteItem(index)"/>
</div>
</div>
我的 js 数据去哪里:
shareholders: [
{
investment: "Investment",
username: "Username",
dynamic: false
},
],
以及我推送输入的方式:
createNewPricedRoundShareholder() {
this.shareholders.push({
username: "Username",
investment: "Investment",
dynamic: true
})
},
以及我如何尝试访问该值:
let username = this.shareholders.username;
以及获取值的函数:
getPricedRoundFormData() {
const totalShareAmount = this.$refs.pricedRoundForm.roundAmount.value.replace(/,/g,"");
const shareType = this.$refs.pricedRoundForm.shareType.value.replace(/,/g,"");
let username = this.$refs.pricedRoundForm.username.value.replace(/,/g,"");
let investment = this.$refs.pricedRoundForm.investment.value.replace(/,/g,"");
let usernames, investments;
if (!username.length) {
usernames = [username.value];
investments = [investment.value];
} else {
usernames = Array.from(username).map((el) => el.value);
investments = Array.from(investment).map((el) => el.value);
}
return { usernames, investments, shareType, totalShareAmount };
},
和提交功能:
async submitPricedRound() {
this.showNewPriceRoundDialog = false;
const pricedRoundData = this.getPricedRoundFormData();
this.addPricedRound(pricedRoundData);
},
解决方案
由于this.shareholders
是对象数组,因此通过索引访问特定股东:
this.shareholders[index].username;
例如,在您的deleteItem
方法中:
methods: {
deleteItem(index) {
/* do something with */ this.shareholders[index].username;
}
}
编辑,回复评论:
如果你想要一个包含所有用户名的数组,你可以这样做:
const usernames = this.shareholders.map(s => s.username);
推荐阅读
- reactjs - 错误:第 8 行解析错误意外令牌
- java - 我想为我的微调器添加一个提示。我怎样才能做到这一点?
- c++ - QCompleter 在 NetworkRequest 完成后无法正常工作
- performance - Azure Profiler Trace 警告说大部分时间都在等待 - 我怎么知道它在等待什么?
- pytorch - torch::autograd::profiler 在哪里?
- flutter - 我在哪里可以在 Cloud Firestore 中找到 google app id、api 密钥、项目 id 和 gcm 发件人 id
- python - C++调用python执行耗时函数,但引发异常
- android - 是否可以获得特定警报的时间?
- java - 当我尝试在 Eclispe 中向项目添加外部 jar 时发生“启动层初始化期间发生错误”
- batch-file - 批处理文件可以运行它所在文件夹中的所有内容吗?