left.js right.js shopBar.js 中绑定了三次的itemData
来源:3-1 课程总结
Aurora_Meteor
2020-07-22 14:16:28
这三个文件里绑定了三次itemData,我原本以为它们是没关系的,但是看老师说它们都是同一个数据【
window.food_spu_tags = data.data.food_spu_tags || [];
】的一部分,不知道是不是我下面说的这几个部分?
1、首先在left.js中将itemData进行绑定
然后将绑定的这部分数据传给右侧列表
这里传入right.js的就是window.food_spu_tags的子项。
2、再在right.js中绑定这部分数据
(1)
(2)
(3)(4)再对绑定的数据进行修改
3、在shopBar.js中,绑定的却是window.food_spu_tags的子项的spus数组的子项
后面使用的也还是这里绑定的itemData
我上面的这些理解正确吗?
如果正确的话,这三个地方绑定的itemData不是同一个对象的呀,怎么可以实现right和shopBar的商品数量同步的呢?
2回答
同学你好,理解的有点问题。
left.js绑定的是window.food_spu_tags中的,一个选项卡对应着右侧自己的数据。
right.js绑定的是window.food_spu_tags.spus中的,一个商品对应着自己的数据
shopBar.js绑定的也是window.food_spu_tags.spus中的,一个商品对应着自己的数据
right.js和shopBar.js绑定的数据地址一致,所以一个改变之后,另一个也会改变。
left和right联动,左侧点击哪个右侧显示相对应部分。right和shopBar联动,修改右侧哪个商品的数量,购物车也会跟着改变。
祝学习愉快!
好帮手慕星星
2020-07-22
同学你好,理解的没有问题。
虽然绑定对象不是同一个,但是绑定的值是同一个,地址是一样的。例如:
将obj对象赋值给obj1和obj2变量,然后通过obj1和obj2修改对象中的值,最后输出obj对象
可以看到是改变的。多个对象指向的是同一个地址,其中一个改变,都会改变的。
自己再理解下,祝学习愉快!
相似问题