Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 图表不使用.resize显示,但使用.render显示_Javascript_Dojo_Arcgis Server - Fatal编程技术网

Javascript 图表不使用.resize显示,但使用.render显示

Javascript 图表不使用.resize显示,但使用.render显示,javascript,dojo,arcgis-server,Javascript,Dojo,Arcgis Server,我正在使用dojo 1.7(内置于我使用的Esri API中)在地图弹出窗口(当用户单击地图时触发)中动态创建图表 设置图表属性(数据、主题等)后,如果调用chart.render,图表将正确呈现,但大小不正确(对于infoWindow容器div来说太大) 但是,如果我调用chart.resize(175145),图表确实会以正确的大小创建,但不会在第一次单击时创建,而是在第二次单击时创建 要复制,请参阅Javascript中的第49-53行 map.infoWindow.setConten

我正在使用dojo 1.7(内置于我使用的Esri API中)在地图弹出窗口(当用户单击地图时触发)中动态创建图表

设置图表属性(数据、主题等)后,如果调用
chart.render
,图表将正确呈现,但大小不正确(对于infoWindow容器div来说太大)

但是,如果我调用
chart.resize(175145)
,图表确实会以正确的大小创建,但不会在第一次单击时创建,而是在第二次单击时创建

要复制,请参阅Javascript中的第49-53行

  map.infoWindow.setContent(c);
  // Chart Resize will resize the DIV as needed.
  // However, the initial click will not show the chart
  chart.resize(175, 145);
  // Chart Render shows the chart on first click, but does not resize the div
  //chart.render();
我的印象是resize方法包括在其中调用render。因此,我不太清楚我为什么会有这种行为


我需要知道需要更改什么才能创建与其所在的父div大小相同的图表div。

图表以默认大小(400 x 300px)呈现的原因是图表节点(div#demoChart)没有任何维度

此外,在图表节点div可见之前,它不会有任何可供图表使用的实际维度(仅样式维度)。然后返回到默认大小300 x 400px

要使代码正常工作,请执行以下操作:

  • 为div添加css样式

    #demoChart {
      width: 175px;
      height: 145px;
    }
    
  • 在显示信息窗口且图表节点实际可见后创建图表。图表在实例化时获取维度(在constructor()方法中,而不是您可能期望的render()方法中)


  • 我已经编辑了你的JSFIDLE使其工作()。

    你能在JSFIDLE中添加一个链接吗?我想我已经更新了你的JSFIDLE,但它不工作。我已经修改了你的JSFIDLE并编辑了我的答案,以包含链接。非常好用。谢谢安德鲁。关于为什么工具提示没有显示,有什么快速的想法吗?您需要创建一个附在图表上的新工具提示(参见上面我的JSFIDLE)。在你的小提琴工具提示不出现。我用和我的小提琴一样的方式在一个单独的图表中实现了工具提示,它们看起来很正常。
    #demoChart {
      width: 175px;
      height: 145px;
    }