关于vux的XNumber组件的@on-change方法
背景是这样的:
我在做一个购物车模块,这里有一个每件商品的数量加减的功能,所以用到了vux的XNumber组件。由于数据是动态获取的,购物车里会有多件商品,XNumber的v-model监听的变量就不能在data里直接定义。
下面是代码节选:
html:
<x-number v-model="quantityModel[index]" :min="1" :max="item.product.num_store" @on-change="mod_num(item.cart_id, index)"></x-number>
js:
data () {
return {
quantityModel: [],
}
},
methods:{
mod_num (cart_id,index) {
this.$http({})
}
}
每一次XNumber的数据变化,我就需要请求一次后台,所以用了@on-change方法监听数据的变化。但是这里有一个问题,由于v-model监听的quantityModel[index]是动态渲染的,所以在初次渲染的时候,mod_num方法就会执行一次,甚至多次。这不是我想要的结果。我尝试过直接给XNumber绑定click事件,但是这时候传递给click事件的quantityModel[index]是变化之前的值。
请问大家有其他好的解决方法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经楼上@toBeTheLight兄的提醒,这样修改就可解决问题:
这里有两个需要注意的地方
想了想,用watch也不太合适,这么写吧。