Předávání proměnné z latte do snippetu

forgie
Bronze Partner | 18
+
+1
-

Ahoj,

zde ve vláknu z před dvou let: https://forum.nette.org/…o-komponente řešil @DavidMatějka s @DavidGrudl i to, že pokud se v latte vytváří proměnná před {snippet x} tak není jak jí do {snippet x} dostat a použít ji tam, a to ani tak, že se to celé obalí {snippetArea wrapX} a invaliduje se jak x tak i wrapX. Prostě v snippetu se dají použít pouze proměnné předané šabloně z presenteru.

Toto se od té doby nijak nezměnilo a pořád to není možné a snippetArea v tomto nijak nepomůže? Nebo mi něco uniklo?

Díky za radu

David Matějka
Moderator | 6445
+
+1
-

jestli se nepletu, tak se nic nezmenilo a ve snippetech je mozne pouzivat pouze promenne predane z presenteru

forgie
Bronze Partner | 18
+
0
-

Jasně, ok, díky za reakci :)

forgie
Bronze Partner | 18
+
0
-

Ještě se předse zeptám.

Toto tedy nemá přímočaré řešení:

{snippetArea wrap}
{form myForm}
    {snippet aaa}
        {control aaa, $form}
    {/snippet}
{/form}
{/snippetArea}

Je potřeba to kompletně obejít a vyřešit jinak?

Prostě k $form nebude nijak v snipetu možné přistoupit.

David Matějka
Moderator | 6445
+
+1
-

k formu se necha dostat pres

{var $form = end($this->global->formsStack)}

ale je to celkem ugly. spise bych preferoval (pokud by to bylo mozny) nepredavat ten formular takhle v sablone, ale treba ho predavat v presenteru, nejak takhle:

protected function createComponentAaa()
{
	return new AaaControl($this['form']);
}

pak bys asi i mohl presunout ten snippet primo do komponenty

forgie
Bronze Partner | 18
+
0
-

Díky moc