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

QQ登录

只需一步,快速开始

查看: 2489|回复: 7

[结贴] 求助:justep.Shell.on()为什么会重复添加事件监听呢?

[复制链接]

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
发表于 2017-3-1 21:21:01 | 显示全部楼层 |阅读模式
      我做了一个小应用,有个功能块里面有一个客户信息的列表页面,在点击某条数据时将该条数据传到详情页面,在详情页面可以对该条数据进行修改和保存,然而在保存后再次回到列表页面,数据无法重新刷新,于是我模仿taobao案例,在详情页面中的保存事件里使用justep.Shell.fireEvent("fnName")派发事件;在列表页的model加载事件中定义了justep.Shell.on("fnName",this.fnName,this)事件监听,实现data.clear()后重新请求后台加载数据,这种方法的确能够重新请求数据库刷新data。但是第二次再进入列表页点击数据到详情页进行修改,当点击保存时发现,data刷新了两次(就是连续请求两此数据库)。再进行第三次操作发现请求了三次,后来每重复上面的操作一次,请求数据库次数就会累加一次,不知道为什么会这样。也不知道到像这种在详情页面或子页面中对数据进行修改后,究竟该怎么去刷新上一个或上上一个页面的数据呢?

发表于 2017-3-2 10:28:48 | 显示全部楼层
页面交互请参考:http://docs.wex5.com/page-interaction/

从页面优化的角度来做!数据刷新的次数越少越好的!
不要一直刷新数据!列表和详细页的数据,通过传参的方式进行赋值,修改和保存即可!

比如,列表页跳转到详细页的时候,将当前行对象传递过去!,修改保存后,再讲数据传递回列表页的data组件!那么列表页数据就是最新的了啊!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-3-3 10:35:03 | 显示全部楼层
liangyongfei 发表于 2017-3-2 10:28
页面交互请参考:http://docs.wex5.com/page-interaction/

从页面优化的角度来做!数据刷新的次数越少越好 ...

我测试使用此方法,在子页面将修改的数据返回到上一个一面,但发现在返回列表页时将本页关闭,但在使用Android的回退时这个页面又出现了,这该怎么处理呢
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-3-3 11:01:06 | 显示全部楼层
liangyongfei 发表于 2017-3-2 10:28
页面交互请参考:http://docs.wex5.com/page-interaction/

从页面优化的角度来做!数据刷新的次数越少越好 ...

还有一个问题是,modelParamsReceive函数每次打开页面都会接收参数,(就是说子页面传过一次参数过来后,下次再打开列表页子时同样也在接收参数,修改data,为什么参数传过一次后就一直都存在呢)
回复 支持 反对

使用道具 举报

发表于 2017-3-3 13:10:58 | 显示全部楼层
dex 发表于 2017-3-3 11:01
还有一个问题是,modelParamsReceive函数每次打开页面都会接收参数,(就是说子页面传过一次参数过来后, ...

将windowDialog 组件的 routable属性设置为false即可!就不会退回再打开了!
第二次打开页面没有传参吗??估计参数是第二次传递过去的!
windowDialog组件的 属性forceRefreshOnOpen="true"  表示每次都重新打开,页面不缓存!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-3-3 13:38:20 | 显示全部楼层
liangyongfei 发表于 2017-3-3 13:10
将windowDialog 组件的 routable属性设置为false即可!就不会退回再打开了!
第二次打开页面没有传参吗? ...

我是用justep.Shell.showPage()打开页面的,也是使用同样的方法传递参数的
回复 支持 反对

使用道具 举报

发表于 2017-3-3 14:21:59 | 显示全部楼层
dex 发表于 2017-3-3 13:38
我是用justep.Shell.showPage()打开页面的,也是使用同样的方法传递参数的

showPage 打开的页面,关闭后还会缓存的!
可以在关闭的时候清空data组件中的数据!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-3-10 21:13:41 | 显示全部楼层
liangyongfei 发表于 2017-3-3 14:21
showPage 打开的页面,关闭后还会缓存的!
可以在关闭的时候清空data组件中的数据! ...

问题已解决,请结贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 17:05 , Processed in 0.059243 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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