前言
之前的微信点餐平台依然在缓慢的开发着,之前初步完成了购物车界面。后面在补充业务逻辑功能的时候由于自己之前没有小程序开发经验遇到了一些小小的问题特此记录下。
场景
这里要新增购物车基础功能,首先说明下菜单数据格式。我后端返回的是一个二维数组,一维最外层放置的是根据菜单分类的对象如人气TOP10,无肉不欢等。分类对象中用第二维数组对象存放具体分类对应的菜品信息。下面是我刚开始写死的假数据用来进行下面的演示:
通过使用data-形式把我们需要的值传入点击事件对象,函数里通过点击事件对象拿到新增按钮对应的数组索引跟对象。
一、点击事件传值
从图中我们可以看到在点击事件参数中绑定了二维数组的两个索引值super_index与goods_index
这样我们就能通过事件对象拿到两层数组分别对应的索引值了,下面是简单的伪代码实现。我们通过字符创拼装的形式构建出需要操作的data具体值对象地址。点击新增按钮后商品购物车数值和总价改变。
addGoods(e) {
var goal = 'menuArr[' + e.currentTarget.dataset.superindex + '].subArr[' + e.currentTarget.dataset.goodsindex + ']'
let isSelected = goal + '.isSelected'
let number = goal + '.number'
console.log(this.data.localShopping.totalPrice)
let price = this.data.localShopping.totalPrice + e.currentTarget.dataset.goods.price
this.setData({
[isSelected]: true,
[number]: 1,
localShopping: {
totalPrice : price
}
})
}