开始用mui移动端项目,最常遇到的问题就是刷新页面,最多见的一种就是下拉刷新,按照官网上的来,能够轻松解决;另一种常见的就是从子页面回到父页面的刷新,
在子页面,注册beforeback参数+自定义事件:web
mui.init({ beforeback: function(){ //得到列表界面的webview //var list = plus.webview.currentWebview().opener(); //目标页面 var list = plus.webview.getWebviewById('FollowUpHisList'); //触发列表界面的自定义事件(refresh),从而进行数据刷新 mui.fire(list, 'refresh'); //返回true,继续页面关闭逻辑 return true; } });
beforeback的执行返回必须是同步的,固然也能够自定义业务逻辑,复写mui.backui
var old_back = mui.back; mui.back = function(){ var btn = ["肯定","取消"]; mui.confirm('确认关闭当前窗口?','Hello MUI',btn,function(e){ if(e.index==0){ //执行mui封装好的窗口关闭逻辑; old_back(); } }); }
而父页面,则须要添加监听事件,经过reload刷新整个页面:code
window.addEventListener('refresh', function(e) { //在父页面中添加监听事件,刷新页面 location.reload(); });
在实际应用中,若是父页面只是单纯的列表页,那么reload()刷新也是能够的,但若是页面中有其余的请求,这时候reload()刷新整个页面就显得有些多余,这个时候为什么不仅仅只刷新指定的方法呢?事件
window.addEventListener('refresh', function(e) { document.getElementById('infoList0').innerHTML = ""; //清空列表内容 initCloumnData();//从新加载要刷新的方法 });
固然,这种在子页面添加自定义事件,父页面添加监听的方法也能够用于方法请求成功后,自动跳转到目标页面并刷新,在实际中也是很实用的,尤为是添加,编辑信息成功后,自动返回并刷新页面。
高手请多指点,新手能够借鉴。webview