请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于cart-model.js的内部函数_changeCount的一个问题 ​

  _changeCounts(id, counts) {
    var cartData = this.getCartDataFromLocal(),
      hasInfo = this._isHasThatOne(id, cartData);
    if (hasInfo.index != -1) {
      if (hasInfo.data.counts > 1) { // 为什么是大于1不是大于0 ?
        cartData[hasInfo.index].counts += counts;
      }
    }
    wx.setStorageSync(this._storageKeyName, cartData); 
  };

为什么是 if ( hasInfo.data.counts > 1 ) { ...... } 而不是 if ( hasInfo.data.counts > 0 ) { ...... } ?

购物车商品数量为1的时候, 如果想增加商品数量, if语句会被跳过

正在回答

1回答

商家的操作,始终让你的商品保持有一个,虽然wxml中阻止的事件的使用,但是最保险的还是在model层阻挡下。

所以你可以心理计算下,商品数量为1,大于0,判断通过, cartData[hasInfo.index].counts += counts;运行,商品数量减少一次,缓存数据更新,商品数量为0

显然不符合商家的利益,当然可以按照实际的业务需求来

0 回复 有任何疑惑可以回复我~
  • 提问者 supersylph #1
    但老师的代码要商品数量大于1才判断通过, 商品数量为1的时候进行操作不会通过判断, 无法更新缓存数据
    回复 有任何疑惑可以回复我~ 2018-01-01 09:23:56
  • 醉的抠脚 回复 提问者 supersylph #2
    就是要商品数为1,不再继续操作,为1时,不再继续减少,让商品数量最小值为1
    回复 有任何疑惑可以回复我~ 2018-01-01 15:50:29
  • 提问者 supersylph 回复 醉的抠脚 #3
    只有hasInfo.data.counts > 1才会执行cartData[hasInfo.index].counts += counts的操作, 导致如果一开始商品数量为1时, 如果想进行增加数量的操作, 也会无法通过判断, 不能更新缓存, 尽管UI已经对数据进行更新, 但缓存里的counts也不会更新, 一直只能是1
    回复 有任何疑惑可以回复我~ 2018-01-01 20:18:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信