Nevygenerování grafu po redrawControl();
- wassy
- Člen | 46
Ahoj,
vytvářím komponentu pro vykreslování různých grafů a chtěl jsem mít
možnost přepínat mezi ruznými typy grafů, a tak jsem si v komponentě
vytvořil další komponentu, která volá handler s mateřské komponenty ve
kterém mění parametr typu grafu a překresluje ji, nicméně po kliknutí na
button, který by měl změnit ten typ, se graf znovu nevykreslí. V html jsou
všechna data změněna, včetně js kódu, v konzoli nemám žádný error a
když si otevřu URL, která se volá ajaxem, graf vidím vykreslený správně
(změněn jeho typ), nejsem v javascriptu tak zběhlý a tak si teď už nevím
rady kde dělám chybu…
Díky za jakoukoli radu ;)
Template mateřské komponenty:
{snippet chart}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
function drawChart() {
$.get({link loadData!}, function (results) {
...získání dat pro graf a další...
$('#spinner-{$randomId|noescape}').hide();
chart.draw(data, options);
});
}
google.load('visualization', '1', {
packages: ['corechart']
});
google.setOnLoadCallback(drawChart);
</script>
<div class="panel panel-default">
<div class="panel-heading"><strong>{$panelTitle}</strong></div>
<div class="panel-body" style="position: relative;">
{control changeChartType}
<div id="chart-{$randomId}" style="width: 100%; min-height: 400px;"></div>
<div style="position: absolute; top: 45%; left: 49%" id="spinner-{$randomId}" ><i class="fa fa-5x fa-cog fa-spin"></i></div>
</div>
</div>
{/snippet}
Handler v komponentě
public function handleChangeChartType($type){
$parent = $this->getParent();
$parent->setDefaultChartType($type);
$parent->redrawControl('chart');
}
Nechci tady dávat všechny zdrojáky, aby ten příspěvek nebyl moc dlouhý, kdyby někdo tušil v čem je zakopaný pes, tak pošlu další, vůbec nevím kde by mohl být problém, tak sem tu dal zatím jen tyhle dva které jsou podle mě nejdúležitější :D