dojo 1.7(使用しているEsri APIに組み込まれている)を使用して、マップポップアップ(ユーザーがマップをクリックするとトリガーされる)内にグラフを動的に作成しています。
var c = dojo.create("div", {
id: "demoChart"
}, dojo.create('div'));
グラフのプロパティ(データ、テーマなど)を設定した後、を呼び出すchart.render
と、グラフは正しくレンダリングされますが、サイズが正しくありません(infoWindowコンテナーdivには大きすぎます)。
ただし、を呼び出すchart.resize(175, 145)
と、グラフは正しいサイズで作成されますが、最初のクリックでは作成されず、2回目のクリックで作成されます。
複製するには、このJSFiddleを参照し、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();
サイズ変更メソッドには、その中にrenderの呼び出しが含まれているという印象を受けました。したがって、なぜ私がこの振る舞いをしているのかよくわかりません。
チャートdivを、それが含まれる親divと同じサイズで作成するには、何を変更する必要があるかを知る必要があります。