< vxe - form : model =" PatientIDForm ": data =" PatientIDForm " title - align =" right " title - width ="100"@ submit =" editSubmit "> < vxe - form - item V - for =" item of PatientIDForm ": key =" item . key ": title =" item . label " title - align =" left ": span ="24" field =" item "> < div > < vxe - input v - model =" item . value " type =" number " nin ="0" style =" width :68px": key =" iten . key +'1'"></ vxe - input > < vxe - button type =" text " style =" color :#Be9aef": loading =" iten . get _ button _ loading "@ click =" getPatientId ( item )": key =" item . key +'2'">获取</ vxe - button >< br >< vxe - input v - model =" item . result ": key =" item . key +'3'"></ vxe - input > < span : key =" item . key +'4'">{{'实际获取数量:'+( item . result ? item . result . split (','). length :0)}}</ span > </ div > </ vxe - form - item > </ vxe - form >为什么我的vxe-form-item中元素不实时更新
时间: 2023-07-19 18:28:59 浏览: 189
vxe-table::dolphin: vxe-table vue 表格解决方案
5星 · 资源好评率100%
从你提供的代码来看,可能是因为你的 v-model 绑定方式有误。在你的代码中,你使用了 `v-model="item.value"` 和 `v-model="item.result"` 来绑定数据,但是你在模板中直接使用了 `item.value` 和 `item.result` 来更新数据,这会导致数据不会实时更新。
正确的绑定方式应该是在模板中使用 `v-model` 来绑定数据,像这样:
```html
<vxe-form-item v-for="item of PatientIDForm" :key="item.key" :title="item.label" title-align="left" :span="24" :field="item">
<div>
<vxe-input v-model="item.value" type="number" min="0" style="width: 68px" :key="item.key + '1'"></vxe-input>
<vxe-button type="text" style="color: #be9aef" :loading="item.get_button_loading" @click="getPatientId(item)" :key="item.key + '2'">获取</vxe-button>
<br>
<vxe-input v-model="item.result" :key="item.key + '3'"></vxe-input>
<span :key="item.key + '4'">{{ '实际获取数量:' + (item.result ? item.result.split(',').length : 0) }}</span>
</div>
</vxe-form-item>
```
这样就能保证数据实时更新了。另外,你的代码中有一个小错误,`v-for` 属性应该写作 `v-for="item in PatientIDForm"` 而不是 `v-for="item of PatientIDForm"`,这可能会导致语法错误。
阅读全文