6***@qq.com
6***@qq.com
  • 发布:2017-01-08 02:14
  • 更新:2020-05-21 10:34
  • 阅读:5048

mui 预加载页面echarts 不显示

分类:MUI

流程:在登录页面预加载首页, 首页有个子页面, 子页面里包含了一个echart图表。

如果我通过 mui.openWindow 打开页面 echart 会显示, 但是通过预加载后,用plus.webview.show(indexPage) 打开页面,echart不显示。

2017-01-08 02:14 1 条评论 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com - 邯许

我也遇到了同样的问题,折腾了好久终于找到一个解决方案;
在tab选项卡切换时候加一个自定义事件,然后在echart那个页面监听;
window.addEventListener('send', function(event) {
//获得事件参数

      mui.plusReady(function() {   //这个是关键,不加这个也不显示  
                ..//调用图表初始化方法  
            })  
        });
  • 2***@qq.com

    用了你的方法,第一次打开页面仍然加载不了echart,报错 Dom’s width & height should be ready before init. at js/echart/echarts-all.js:1;只有切换别的tab,再次切换回来以后才会正确加载,就不会报错了,真是郁闷,都夜里12点半了。


    mui.plusReady(function() { //这个是关键,不加这个也不显示

    console.log("plusReady initEchart");

    echarts.init(document.getElementById("pieChart"));

    });


            document.addEventListener('initEchart', function(event) {  
    console.log("initEchart");
    var pieChart = echarts.init(document.getElementById("pieChart"));
    pieChart.setOption(getOption());
    });

    2018-03-09 00:28

  • 7***@qq.com

    我的是在选项卡页面里面添加自定义事件 然后在echart页面监听后让后渲染

    2018-03-10 10:01

有米

有米

如果是预加载页面可以这样

第一个页面 申明一个变量 var da=1;

mui.fire(energyPage,"sent",{data:da});
da++;

mui.plusReady(function() {
window.addEventListener("sent", function(event) {
var alarmFla = event.detail.data;
if(alarmFla == 1) {
location.reload();
}

            });  

        });
unionw

unionw - 忙的天昏地暗

我试了很多遍,页面预加载是加载不出来echarts的图表。你的逻辑是可行的。先在预加载的页面(按你的就是index.html)做预加载,打开echart.html页的事件里添加
mui.fire(plus.webview.getWebviewById('echart.html'), 'updateEchart');
建议放打开事件后面。
然后在echart.html页面里
var pieChart做全局变量。
document.addEventListener('updateEchart', function(event) {
console.log("initEchart");
pieChart = echarts.init(document.getElementById("pieChart"));
pieChart.setOption(getOption());
});
后面再就可以使用
pieChart.setOption(getOption());
对异步数据进行刷新了

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