详细问题描述
[内容]
点击保存调接口然后返回上一页,需要点击多次
重现步骤
[步骤]
[结果]
[期望]
点击子页面保存,提交数据,成功之后刷新父页面,然后调用mui.back()方法返回父页面,需要点击多次保存才会返回
运行环境 Android
[系统版本] Android7.1
[浏览器版本]
[IDE版本]
[mui版本]
附件
[代码片段]
[安装包]
capajax({
url:url+"/ApiHouse/TxRelateInfo",
data:{
CmdContent:JSON.stringify(cmd)
},
success:function(data){
if(data.returncode>0){
**var i = plus.webview.getWebviewById('homePage'); //父页面webview对象
mui.fire(i, 'refresh',{ //刷新父页面
type:2
});
mui.back(); //返回父页面,这里接口调成功之后 并不会返回,需要点击2-3次才会返回**
mui.toast(data.return_msg);
}
}
})
联系方式
[QQ]
[电话]
7***@qq.com (作者)
但是我需要点击确定掉接口之后再返回上一页啊,不然应该怎么做,给个思路吧···
2018-02-01 18:31
回梦無痕
回复 7***@qq.com:把mui.back();放外面,直接返回。
2018-02-01 18:33
7***@qq.com (作者)
回复 回梦無痕:这样父页面就没办法刷新了啊,没有提交上的话刷新就没意义了
2018-02-01 18:35
7***@qq.com (作者)
回复 7***@qq.com:我直接返回然后再回调里刷新父页面么,子页面关了之后代码还会执行么
2018-02-01 18:38
奔跑的蘑菇
回复 7***@qq.com:你如果担心数据没有提交成功就返回的问题,你可以这样,写一个全局flag,比如说初始是true,当你请求接口的时候改变为false,根据你的业务需求,比如等请求成功之后,刷新完父页面再改变flag状态,然后在你的mui.back();中判断一下你的flag状态,如果是true的时候才让返回父页面;
不过还有另外一种方法,就是你可以做一个蒙版,当请求数据的时候显示蒙版,请求成功之后再取消掉,plus.nativeUI.showWaiting();-显示,plus.nativeUI.closeWaiting();-隐藏,这样也可以避免你提交数据的时候按返回键返回父页面
2018-02-02 09:38
回梦無痕
回复 7***@qq.com:默认的返回动画有200~300毫秒,在页面关闭前,可以做很多事情了。而且, 你的返回提交数据刷新上一页根本就不应该放到返回事件的做ajax请求,你把ajax放在上一页页中,返回上一页的时候,用自定义事件把参数传递过去,在上一页中做ajax请求刷新页面数据。动画的200~300毫秒,足够上一页做ajax刷新数据了,如果你的接口很慢,那就show一个loading的层,等ajax刷新完之后关闭这个loading层就可以了
2018-02-02 10:38