Javascript vue.js更改值未在输入v模型中更新
我正在尝试格式化输入中输入的数字,当我离开输入时,我调用一个函数来实现这一点,但v模型中的值没有更新 该函数工作正常,因为我警告了该值,但它从未在视图中更新 有什么想法吗 htmlJavascript vue.js更改值未在输入v模型中更新,javascript,html,vue.js,Javascript,Html,Vue.js,我正在尝试格式化输入中输入的数字,当我离开输入时,我调用一个函数来实现这一点,但v模型中的值没有更新 该函数工作正常,因为我警告了该值,但它从未在视图中更新 有什么想法吗 html <div v-for="year in years"> <input type="text" :disabled="budget.checked[year] == true" v-on:blur="f
<div v-for="year in years">
<input type="text" :disabled="budget.checked[year] == true" v-on:blur="formatMoney(budget.personnelBudget[year])" v-model="budget.personnelBudget[year]"/>
<input type="text" :disabled="budget.checked[year] == true" v-on:blur="formatMoney(budget.travellingBudget[year])" v-model="budget.travellingBudget[year]" />
<input type="text" :disabled="budget.checked[year] == true" v-on:blur="formatMoney(budget.inventoriableBudget[year]" v-model="budget.inventoriableBudget[year]" />
.....
您有一个反应性问题,因为您正在为模板中未反映的嵌套字段赋值,要解决此问题,请尝试使用
this.$set
:
this.$set(this.budget,'personnelBudget',
{...this.budget.personnelBudget,
[year]:this.budget.personnelBudget[year].replace(/,/g, "")})
然后尝试将输入作为字符串传递:
<input ... v-on:blur="formatMoney('personnelBudget',year)" v-model="budget.personnelBudget[year]"/>
好的,我很好!但是,对于以相同方法输入的其他输入,它是否正确地将v-model传入:blur like:v-on:blur=“formatMoney(budget.personnelBudget,year)我更新了我的帖子,你可以看到我需要为其他人的输入这样做,请检查我编辑的答案现在是完美的,谢谢!我只是更改了输入设置中的“人员预算”,以便为其他人的输入这样做
<input ... v-on:blur="formatMoney('personnelBudget',year)" v-model="budget.personnelBudget[year]"/>
formatMoney(input,year) {
this.$set(this.budget,'personnelBudget',
{...this.budget[input],
[year]:this.budget[input][year].replace(/,/g, "")})