2

开始用mui移动端项目,最常遇到的问题就是刷新页面,最常见的一种就是下拉刷新,按照官网上的来,可以轻松解决;另外一种常见的就是从子页面回到父页面的刷新,
在子页面,注册beforeback参数+自定义事件:

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.back

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刷新整个页面:

window.addEventListener('refresh', function(e) {
//在父页面中添加监听事件,刷新页面
    location.reload();  
});

在实际应用中,如果父页面只是单纯的列表页,那么reload()刷新也是可以的,但如果页面中有其他的请求,这时候reload()刷新整个页面就显得有些多余,这个时候为何不单单只刷新指定的方法呢?

window.addEventListener('refresh', function(e) {  
    document.getElementById('infoList0').innerHTML = "";
    //清空列表内容
    initCloumnData();//重新加载要刷新的方法
});

当然,这种在子页面添加自定义事件,父页面添加监听的方法也可以用于方法请求成功后,自动跳转到目标页面并刷新,在实际中也是很实用的,尤其是添加,编辑信息成功后,自动返回并刷新页面。
高手请多指点,新手可以借鉴。


肚肚楠
16 声望0 粉丝

肚肚楠,前端修行,勇往直前!