小程序
小游戏
企业微信
微信支付
扫描小程序码分享
如图,仿照美图外卖的样子从后台遍历出所有商品条目,怎样才能在点击加好/减号的时候 只改变当前item的input[type='text']的值,而不是全部input框的值
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:
var index = e.currentTarget.dataset.index;//index为数组下标值
var obj = {};
obj['products[' + index + '].num'] = products[i].num++;
this.setData(obj);
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
undefined;
算了,我想出来了,自问自答吧。。。我是通过点击加号/减号的时候,将这个商品的pid和后台取出来的原始商品数据进行for循环比对,只要点击按钮的pid和原始数据的其中一条pid相等,那就把这条原始数据的num++,当然取出来的原始数据中是没有num这个字段的话 就要在取出来后立即补一个num,默认值为0。
plus:function(e){
var products = this.data.product;
for(var i=0;i<products.length;i++){
if (products[i].pid == e.currentTarget.dataset.pid){
products[i].num ++;
}
this.setData({product:products})
},
})
index 事件
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:
var index = e.currentTarget.dataset.index;//index为数组下标值
undefined;var obj = {};
obj['products[' + index + '].num'] = products[i].num++;
this.setData(obj);
给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:
var index = e.currentTarget.dataset.index;//index为数组下标值
undefined;
var obj = {};
obj['products[' + index + '].num'] = products[i].num++;
this.setData(obj);
算了,我想出来了,自问自答吧。。。我是通过点击加号/减号的时候,将这个商品的pid和后台取出来的原始商品数据进行for循环比对,只要点击按钮的pid和原始数据的其中一条pid相等,那就把这条原始数据的num++,当然取出来的原始数据中是没有num这个字段的话 就要在取出来后立即补一个num,默认值为0。
plus:function(e){
var products = this.data.product;
for(var i=0;i<products.length;i++){
if (products[i].pid == e.currentTarget.dataset.pid){
products[i].num ++;
}
}
this.setData({product:products})
},
})
index 事件