如图,仿照美图外卖的样子从后台遍历出所有商品条目,怎样才能在点击加好/减号的时候 只改变当前item的input[type=‘text’]的值,而不是全部input框的值
算了,我想出来了,自问自答吧。。。我是通过点击加号/减号的时候,将这个商品的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})
},
})
给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:
var index = e.currentTarget.dataset.index;//index为数组下标值
undefined;
var obj = {};
obj[‘products[’ + index + ‘].num’] = products[i].num++;
this.setData(obj);