<!-- 添加双向绑定属性用于监听输入,再通过@input实时输入,将该属性所在下标传到该函数里 -->
<input v-model="spec.price" @input="specPrice(sIndex)" id="spec-price" class="ns-input" type="text" placeholder="请输入价格">
// 监听规格价格
specPrice(index){
// 通过下标进行全局监听,实时更新
this.$watch((data) => data.specs[index].price,(newVal) => {
// 正则判断允许正整数后两位小数点
this.specs[index].price = manage.regular(newVal,0).val;
})
},
遇到需要初始化数组导致全局监听报错怎么办
// 监听规格价格
specPrice(index){
this.$watch((data) => {
try{
// 正确就正常返回
return data.specs[index].price;
}catch(e){
// 报错直接返回false
return false;
}
},(newVal) => {
// 对返回的数据进行判断,有则赋值,没有则什么也不做
if(newVal){
// 正则判断允许正整数后两位小数点
this.specs[index].price = manage.regular(newVal,0).val;
}
})
},
其实最好是直接销毁全局监听,不过我没找到方法,如果谁找到望告知,谢谢。