Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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模型中更新_Javascript_Html_Vue.js - Fatal编程技术网

Javascript vue.js更改值未在输入v模型中更新

Javascript 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

我正在尝试格式化输入中输入的数字,当我离开输入时,我调用一个函数来实现这一点,但v模型中的值没有更新

该函数工作正常,因为我警告了该值,但它从未在视图中更新

有什么想法吗

html

    <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, "")})