Komponenta s více templates – překreslení ajaxem
- MikeLacroix
- Člen | 60
Zdravím,
mám komponentu Calendar, k ní dvě šablony year.latte a month.latte. Komponentu vytvářím přes {control calendar:month}. V komponentě mám metody renderYear() a renderMonth(). Potud vše v pohodě.
Pokud ale v některé šabloně ajaxem zavolám třeba signál nextYear!, komponenta už pak neví, jestli použít renderYear() nebo renderMonth() (snaží se použít render()).
Jak se toto řeší? Jak elegantně v komponentě zjistit, přes kterou render metodu má být vykreslovaná?
- David Matějka
- Moderator | 6445
ahoj, muzes to vyresit napriklad pres snippet area, ale spise nedoporucuji pouzivat vice render metod u komponent, vice viz moje prednaska: https://www.youtube.com/watch?…
- MikeLacroix
- Člen | 60
Díky. Obalil jsem to do snippetArea:
<?php
{snippetArea calendar} <div n:snippet="month">...</div> {/snippetArea}
?>
a do handleNextYear() jsem přidal invalidaci:
<?php
public function handleNextYear() {
...
$this->redrawControl('calendar');
$this->redrawControl('month');
}
?>
ale výsledek je stále stejný…
- David Matějka
- Moderator | 6445
je potreba obalit do snippetu vykreslovani Controlu a redraw provest na parent komponente (presenteru)