首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Google图表附在弹出的传单上

问将Google图表附在弹出的传单上
EN

Stack Overflow用户
提问于 2020-02-07 11:31:55
回答 1查看 250关注 0票数 1

我试着在传单中的一个图层的弹出式上附加一个谷歌图表,然后跟着这个instruction。但是,我一直收到这样的错误:

“未定义(承诺)错误:容器未定义”

下面是我用来绑定弹出窗口的javascript函数:

代码语言:javascript
复制
function layer_name(feature, layer) {
  //...
  var popupContent = L.popup().setContent('<div id="chart_div" align = "center">1</div>')

  layer.bindPopup(popupContent, {maxHeight: 400});
}

当我试着设置

代码语言:javascript
复制
<div id="chart_div" align = "center">1</div>

作为一个HTML元素,没有引发错误。

我还将在脚本开头绘制的图表定义如下:

代码语言:javascript
复制
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">

  // Load Charts and the corechart package.
  google.charts.load('current', {'packages':['corechart']});

  // Draw the pie chart for follower chart when Charts is loaded.
  google.charts.setOnLoadCallback(drawChart);

  // Callback that draws the bar
  function drawChart() {

        var data = google.visualization.arrayToDataTable([
        ['Title', 'Value'],
        ['A', 317],
        ['B', 148],
        ['C', 67],
        ['D', 27],
        ['E', 23]
        ]);

        var chart = new google.visualization.BarChart(document.getElementById('chart_div'));

        chart.draw(data);
    }

</script>

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-07 11:59:04

您的问题是,在打开弹出窗口之前,不会创建HTML chart_div。但是您尝试在未创建的HTML元素上插入图表。

打开弹出窗口后调用drawChart()。

更新您的layer_name函数并将openpopup事件添加到该层。当你打开弹出窗口时它会被调用。

代码语言:javascript
复制
function layer_name(feature, layer) {
  //...
  var popupContent = L.popup().setContent('<div id="chart_div" align="center">1</div>')

  layer.bindPopup(popupContent, {maxHeight: 400});
  layer.on('popupopen',function(e){
    drawChart();
  })
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60112615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档