加减逻辑部分
来源:1-7 详情页-右侧数据渲染(4)
Aurora_Meteor
2020-06-26 21:53:27
图中前两行代码是不是就实现了对商品选择数量的修改?后面的几行都是在修改挂载在商品item上的数据呢?
right.js和left.js中都有挂载itemData,这两个地方挂载的数据是不是不一样?left中挂载的是相应分类中的所有商品的数据(包括该分类包含哪些商品、各个商品的具体信息),而right中只包括各个商品的具体信息?
如果我上面这段话说的正确的话,那给right中的每个menu-item挂载数据的目的是什么呢?
3回答
同学你好,问题解答如下:
1.理解不全面。前两行代码是修改html结构上的商品数量(实现视觉上商品数量变化),后几行代码是修改挂载在“menu-item”上的数据,如下:
修改了“menu-item”上的数据后,对应全局上的数据,也会跟随变化。
2. right.js和left.js中都有挂载itemData,这两个地方挂载的数据不一样,左侧每一个列表,挂载的是它对应的所有数据,右侧每一个商品挂载的是它自己的数据,该点同学理解的是对的。
3. 给right中的每个menu-item挂载数据,是为了修改全局中的数据。
4. 其余问题,同学可以根据如下回答,试着理解一下:
右侧元素通过自定义属性data,将数据是绑定在每一个“menu-item”上,如下:
所以修改“menu-item”上的数据时,需要先获取到,然后再修改,对应如下代码:
由于之前我们将所有商品数据都放在了全局,如下:
然后左右结构的元素上,对应绑定了这个全局对象中的某一部分数据,所以右侧元素修改自己身上的数据时,就会改变全局中的数据(对象是引用类型)。也就是说为了能够改变全局中的数据“food_spu_tags”,我们才将它数据中的部分,绑定在对应的dom结构上,这样修改dom元素上的数据就等同于修改全局数据。
修改了全局数据后,购物车会根据该数据进行渲染内容:
所以购物车数据会联动。
如果我的回答帮到了你,欢迎采纳,祝学习愉快!
好帮手慕久久
2020-06-28
同学你好,理解正确,就是这个意思,祝学习愉快!
Aurora_Meteor
提问者
2020-06-27
另外图中获取itemData是倒数第二行,而修改它的chooseCount是在最后一行,这样为什么修改后的chooseCount可以同步到menu-item上呢?获取到的itemData不应该是一个静态的对象,它的属性是给men-item所绑定的数据吗?我觉得应该把数据再次绑定到menu-item上才能更新显示的数据呀
相似问题