Předání dat do jquery funkce při načtení stránky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
joehoe
Člen | 12
+
0
-

Ahoj, při načtení stránky chci poslat data vygenerovaná ve funkci getData() do jquery scriptu, zpracovat je a hned je zobrazit pomoci jquery. Mohl byste mi někdo poradit jak nejlépe to udělat. Data nechci zobrazovat ale jen předat jquery, ktery je zpracuje.

(Funkci getData volám ve funkci function startup();)

<script>
        var data = ?;

        $.vygenerovaniGrafu($('#container'),[
          ...
        });
</script>

Mam zalinkovany jquery.nette.js

OndrejSlamecka
Člen | 41
+
0
-

Existuje důvod proč ty data získávát v metodě startup? Jestli je chceš posílat do šablony, nechal bych si to na beforeRender či render (to je chvíle kdy už se ví, že dojde k vykreslování šablony – mezi startup a render může dojít k přesměrování, změně dat,…). „při načtení stránky“ ⇒ AJAX na to ani není potřeba.

Presenter:

<?php
public function renderDefault() // action == default
{
    $this->template->data = $model->getData();
}
?>

Šablona (syntax=double):

<script n:syntax="double">
    var data = {{$data}};
</script>

Editoval OndrejSlamecka (26. 2. 2012 12:53)

joehoe
Člen | 12
+
0
-

Skvělý,díky za radu.Teprve s tím začínám. Ještě jednu věc. Kdyby javascript chtěl mít v externím souboru. Jak lze tyto data získat? Díky!

duke
Člen | 650
+
0
-

Můžeš použít např. html5 data attributy.

OndrejSlamecka
Člen | 41
+
0
-

První možnost napsal duke. Druhá možnost je zpracovávat i JavaScriptové soubory aplikací (např. přes addon WebLoader). Třetí možnost je část JavaScriptu, ve které vkládáš data, nechat inline v HTML (jak jsem posílal kód nahoře) a zbytek JavaScriptového kódu mít právě v externím souboru.