起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1429|回复: 6

[处理中3] 关于多页面返回的问题

[复制链接]

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
发表于 2017-1-17 09:31:34 | 显示全部楼层 |阅读模式
本帖最后由 waterrain 于 2017-1-17 09:43 编辑

我从列表页进入详情页,通过传入列表页商品的Id,在详情页打开商品的详情,在详情页,通过店铺进入卖家的店铺,此时如果点击店铺的商品(        var data = this.comp("goodsData");                justep.Shell.showPage("detail",{
                        goodId : data.val("gId")
                });此方法与列表页进入详情页是一致的),那么再打开的详情页里竟然是从列表页进入详情的结果,也与在店铺页面直接通过返回按钮的效果相同,二者的区别在于,如果是通过点击商品进入详情页,那么在这个详情页里再次点击店铺,在店铺里再次点击商品,详情页中的商品数据没有发生改变,也就是说还是第一次从列表页进入的结果。但是如果是通过返回按钮店铺返回到详情页,此时在详情页里,点击店铺进入店铺的话,那么详情页的数据是店铺中的数据(发生了变化);但是这是在详情页里通过返回按钮返回到店铺,店铺页面是没有任何问题,但是如果接着通过店铺的返回按钮返回的详情页,那么详情页的数据就不存在了(或者说从列表页进入时的数据没有了);那么页面间使用何种方式打开,以及何种方式关闭呢,在列表进详情,店铺进详情都是通过上面的那段代码做的,返回都是通过返回按钮自带的操作,window的close。通过alert传入的参数发现,在列表页进入详情,详情进入店铺,在店铺进入详情,此时没有触发alert事件。通过店铺的返回按钮返回到详情页在点击进入店铺,在店铺中点击商品进入详情,触发了alert事件,但是此时通过返回按钮到店铺,店铺通过返回按钮到详情,详情为underfind。(真奇怪,通过打开页面的方式,竟然不触发事件,而通过二次返回的方式竟然触发了事件)

QQ截图20170117091133.png
QQ截图20170117091153.png
QQ截图20170117091226.png

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
 楼主| 发表于 2017-1-17 10:36:38 | 显示全部楼层
现在只是调了一个打开页面的同时关闭掉当前页面的方法,可以实现详情页到店铺,店铺中点击商品可以看到详情页中的展示,此时返回到店铺,店铺在返回,列表页中的信息依然是展示的,但是却漏掉了从列表页代开的详情页,跟京东上的效果比,总是差了一些,这里应该是参数接收方面的问题,只是怎么解决呢?
回复 支持 反对

使用道具 举报

发表于 2017-1-17 11:50:57 | 显示全部楼层
waterrain 发表于 2017-1-17 10:36
现在只是调了一个打开页面的同时关闭掉当前页面的方法,可以实现详情页到店铺,店铺中点击商品可以看到详情 ...

说的我好乱??你自己的功能!我都不理解!建议举例说明,比如A页面跳转B页面如何传参?哪个页面的什么事件触发没触发??参数传递没传递过来!
然后我再验证是否是bug
首先 showPage 传参打开的页面!在onParamsReceive事件中接受参数都是可以接受到的!
不会,这个版本中,回退键回去参数是不存在的!你可以把当前接受的参数先保存在某个js变量中!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
 楼主| 发表于 2017-1-18 16:57:43 | 显示全部楼层
liangyongfei 发表于 2017-1-17 11:50
说的我好乱??你自己的功能!我都不理解!建议举例说明,比如A页面跳转B页面如何传参?哪个页面的什么事 ...

我今天再看,自己都蒙了,其实很好理解,就是我在详情页进入店铺的时候,在店铺里点击商品,进入详情页是没有发生变化的,还是刚才那个详情页(进入店铺的那页);如上3 张图;其他情况,我忘记了,具体你可以测试下,相信你会明白我说的是什么,不过你说的没有记住打开页面的参数,应该就是回退的时候是空的原因,
回复 支持 反对

使用道具 举报

发表于 2017-1-19 10:05:14 | 显示全部楼层
waterrain 发表于 2017-1-18 16:57
我今天再看,自己都蒙了,其实很好理解,就是我在详情页进入店铺的时候,在店铺里点击商品,进入详情页是 ...

第二次进入详细页的时候,有没有传参呢??应该是要传参的!然后在详细页的onParamsReceive
事件中接受参数!重新加载到data组件中就行了

shell打开的单页,默认肯定会缓存的!所以,所以如果第二次打开!data组件数据不刷新的话!当然就是显示的上一个页面!!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
 楼主| 发表于 2017-1-20 10:40:27 | 显示全部楼层
liangyongfei 发表于 2017-1-19 10:05
第二次进入详细页的时候,有没有传参呢??应该是要传参的!然后在详细页的onParamsReceive
事件中接受参 ...

明白问题所在了,我没有使用过参数接收事件,都在在data组件的刷新事件中使用this.params。直接所得参数,只是在店铺打开详情 页的时候,这里的data刷新事件根本就没有触发;也许是缓存的问题,问题是列表--详情---店铺--详情 都是通过shell打开的,应该会触发刷新啊
回复 支持 反对

使用道具 举报

发表于 2017-1-20 11:00:58 | 显示全部楼层
waterrain 发表于 2017-1-20 10:40
明白问题所在了,我没有使用过参数接收事件,都在在data组件的刷新事件中使用this.params。直接所得参数 ...

对,页面缓存了!第二次打开的时候!必须使用onParamsReceive 才可以接受参数!
否则代码没执行!第二次  onload肯定不触发的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-28 02:22 , Processed in 0.058606 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表