国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序實現購物車代碼實例詳解

2019-11-19 10:56:34
字體:
來源:轉載
供稿:網友

其實購物車都是類似的實現方法,只不過小程序是有他的數據層和業務層,在這里把之前的做法記錄一下,分享出來也希望能給需要的小伙伴帶來參考價值在最開始的時候先從本地存儲中獲取購物車數據,因為我們會切換頁面 在頁面切換的過程中需要實時重新加載購物車的數據,所以我們把獲取的方法寫在onShow中,而不是onLoad中:

onShow: function () {  const cart = wx.getStorageSync("cart");  let address = wx.getStorageSync("address") ;  console.log(address);  this.setData({   address, cart  })  this.loadCarts();  this.countAll(); }

點擊按鈕更改購物車的數量:

handleNumEdit(e) {  const { operator, goodsid } = e.target.dataset;  let { cart } = this.data;  cart[goodsid].count += (+operator);  if (cart[goodsid].count < 1) {   cart[goodsid].count = 1;   wx.showModal({    title: '提示',    content: '您確定要刪除嗎',    showCancel: true,    cancelText: '取消',    cancelColor: '#000000',    confirmText: '確定',    confirmColor: '#3CC51F',    success: (result) => {     if (result.confirm) {      delete cart[goodsid];      this.loadCarts();      this.countAll();     } else {     }    }   });  } else if (cart[goodsid].count > cart[goodsid].goods_number) {   cart[goodsid].count = cart[goodsid].goods_number;   wx.showToast({    title: '沒有庫存了',    icon: 'none',    duration: 1500,    mask: true   });  }  this.loadCarts();  this.countAll(); }

加載購物車數據的方法:

data: {  cart: {},  address: {},  totalPrice: 0,  categoryLength: 0,  isAllChecked: true },

單個商品被選中時觸發:

loadCarts() {  let { cart } = this.data;  let isAllChecked = true;  for (const key in cart) {   if (cart.hasOwnProperty(key)) {    const element = cart[key];    if (!element.isChecked) {     isAllChecked = false;     break;    }   }  }  this.setData({   cart,   isAllChecked  }); },

全選和反選觸發的事件:

handleItemChecked(e) {  let { goodsid } = e.target.dataset;  let { cart } = this.data;  let { isChecked } = cart[goodsid];  cart[goodsid].isChecked = !isChecked;  let checkedLength = 0;  for (const key in cart) {   if (cart.hasOwnProperty(key)) {    if (cart[key].isChecked) {     checkedLength++;    }   }  }  const isAllChecked = checkedLength == Object.keys(cart).length;  this.countAll();  this.setData({   isAllChecked  }) },

點擊結算時觸發:

handleItemAllChecked() {  let { isAllChecked } = this.data;  let { cart } = this.data;  isAllChecked = !isAllChecked;  for (const key in cart) {   if (cart.hasOwnProperty(key)) {    cart[key].isChecked = isAllChecked;   }  }  this.setData({   isAllChecked,   cart  })  this.countAll(); },

純js代碼,可能有一定小程序代碼經驗的會看得輕松一點。以上便可以實現在對購物車的商品進行加減和全選與反選,以及對商品進行數量合計并計算價格。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆安县| 当雄县| 库尔勒市| 嵊州市| 元谋县| 栾川县| 河南省| 呼玛县| 博罗县| 东辽县| 玉龙| 柘荣县| 临泽县| 广汉市| 通州市| 永城市| 揭阳市| 蒲江县| 清远市| 大庆市| 冀州市| 射洪县| 黄骅市| 高雄市| 那坡县| 杭锦后旗| 临朐县| 西藏| 武平县| 莫力| 庐江县| 年辖:市辖区| 镇巴县| 枣强县| 甘肃省| 宁南县| 杨浦区| 遵化市| 普洱| 南宫市| 都昌县|