为什么这样就能将数据传给右侧详情列表了?
来源:1-6 详情页-右侧数据渲染(3)
weixin_慕前端6235132
2020-08-08 14:56:46
3回答
同学你好,问题解答如下:
1. window.Right.refresh是right.js这个文件中,暴露到全局中的一个方法(right.js就对应右侧解结构),位置如下 (注意图中的注释):
这种写法就类似于下面的形式:
所以调用“window.Right.refresh”的时候,实际执行的就是init方法,同学敲一下上面的例子,试试。
其中refresh只是我们起的一个属性名,你也可以换成其他的名字,因为window.Right的值是一个对象,对象要有属性和值,所以我们写了一个refresh,来当属性init这个方法的属性名:
2. 上面讲解了调用window.Right.refresh方法,实际执行的是 right.js中的init方法,而init方法中,我们定义了参数data:
所以“window.Right.refresh( $target.data('itemData') )”中的$target.data('itemData')就对应着上图中的data,这样就把数据(参数)传给了init方法,从而传到了右侧,就相当于下面的形式:
同学仔细读一下老师的讲解,然后将代码敲一遍,看看打印结果,理解一下。
祝学习愉快!
weixin_慕前端6235132
提问者
2020-08-08
这个refresh是干嘛的?
好帮手慕久久
2020-08-08
同学你好,问题解答如下:
“window.Right.refresh”是一个方法,它是right.js中暴露到全局的,如下:
调用“window.Right.refresh”时,就是执行right.js中的init方法,所以“window.Right.refresh($target.data('itemData'))”中的参数“$target.data('itemData')”就会对应传到right.js中的init方法中。
由于“$target.data('itemData')”是点击的那个“left-item”上面的数据(左侧的left-item),因此就把左侧的数据传到了右侧。
如果我的回答帮到了你,欢迎采纳,祝学习愉快!
相似问题