5***@qq.com
5***@qq.com
  • 发布:2017-06-14 11:02
  • 更新:2017-08-08 16:24
  • 阅读:2287

mui.init在单页面web里无法再次激活上拉加载功能

分类:MUI

我用mui+vue+webpack+vue-router开发单页面web,初次加载页面时
mui.init({
pullRefresh: {
container: '#pullRefresh',
up: {
height: 50,
contentrefresh: '正在加载...',
contentnomore: '没有更多数据了',
callback: pullupRefresh
}
}
})
可以正常的调用上拉加载功能,但是我这时候进入其他页面再回来的时候,上拉加载功能就失效了。
是不是mui.init()只有在页面初次加载的时候才执行,而单页面web的页面跳转无法再次调用mui.init()去初始化上拉加载的功能呢,我要如何才能再次激活上拉加载功能?(不刷新页面的前提下)

2017-06-14 11:02 负责人:无 分享
已邀请:
yunqifeiyang

yunqifeiyang

在init前面加入```javascript
for(var i = mui.hooks.inits.length-1,item;i>=0;i--){
item=mui.hooks.inits[i];
if(item.name=="pullrefresh"){
item.repeat=true;
}
}

这段是用来解决mui的库中这段代码的设置```javascript  
/**  
     * 单页配置 初始化  
     * @param {object} options  
     */  
    $.init = function(options) {  

        $.options = $.extend(true, $.global, options || {});  
        $.ready(function() {  
            $.doAction('inits', function(index, init) {  
                var isInit = !!(!inits[init.name] || init.repeat);  
                if (isInit) {  
                    init.handle.call($);  
                    inits[init.name] = true;  
                }  
            });  
        });  
        return this;  
    };

并且在vue的beforeDestory即该组件的销毁时```javascript
mui.options.pullRefresh=null;


这段是阻止你切换路由跳转回来发生组件错误的问题
  • 2***@qq.com

    你好,在init前面加的代码是指在mui.js里面加的吗?试过了,好像不好使了

    2017-08-08 18:22

  • yunqifeiyang

    这个代码是mui.js自己的,你在你的vue组件内,一般是mounted时候需要 mui.init(),在mouted内增加那个for循环,然后在组件的beforeDestory增加mui.options.pullRefresh=null;

    2017-08-09 11:52

godo9

godo9

同遇到这个问题,找了一群没有解决方法!

该问题目前已经被锁定, 无法添加新回复