const { data } = await attributeid(row.id) this.form = data if (data.scope && data.scope.includes('.')) { // 判断是否包含分隔符 let [left, right] = data.scope.split('.'); // 分割字符串 this.form.scope1 = left // 输出左边的内容 this.form.scope2 = right // 输出右边的内容 delete data.scope } this.dialogVisible = true <el-input-number v-model="form.scope2" :step="1"></el-input-number> 在编辑时 数据回显 点击两边的加减不动 怎么解决 代码展示
时间: 2024-02-27 13:54:23 浏览: 50
根据你提供的代码,可能的原因是你使用了 `delete data.scope` 语句删除了 `data.scope` 字段,但是 `el-input-number` 组件的 `v-model` 绑定的是 `form.scope2`,所以当你在编辑时点击加减按钮时,实际上是在修改 `form.scope2` 的值,而该值已经不再存在了,导致无法修改。
解决这个问题的方法是,在删除 `data.scope` 前,先将其值赋给 `form.scope2`,例如:
```
const { data } = await attributeid(row.id);
this.form = data;
if (data.scope && data.scope.includes('.')) {
let [left, right] = data.scope.split('.');
this.form.scope1 = left;
this.form.scope2 = right;
// 将 data.scope 的值赋给 form.scope2
this.form.scope2Value = data.scope;
}
this.dialogVisible = true;
```
然后在模板中,将 `v-model` 绑定到 `form.scope2Value` 上,例如:
```
<el-input-number v-model="form.scope2Value" :step="1"></el-input-number>
```
这样,当用户点击加减按钮时,实际上是在修改 `form.scope2Value` 的值,而不是 `form.scope2` 的值。在提交表单时,你可以将 `form.scope1` 和 `form.scope2Value` 拼接成一个完整的字符串,以便后端处理。
阅读全文