Překreslení snippetu presenteru z komponenty
- chikeet
- Člen | 160
Zdravím,
řeším celkem triviální problém:
- v hlavičce stránky mám snippet (konkrétně nákupní košík)
- níž ve stránce mám komponenty pro ajaxové přidávání produktů do košíku
- ajaxová obsluha přidání produktu do košíku aktualizuje počet produktů, překreslí snippet, ale v hlavičce se zobrazí vždy ta předchozí hodnota (tzn. hodnota, která byla aktuální před zpracováním posledního ajaxového požadavku)
Zkoušela jsem všechno možné, updatovat proměnné v šabloně presenteru public metodou volanou z komponenty, tahat v šabloně aktuální hodnoty z properties presenteru, nic nefungovalo tak, aby byly hodnoty ve snippetu košíku aktuální (nemluvě o tom, že se mi ani jedno z těch řešení zrovna nezamlouvá).
Jak dosáhnout toho, aby se v presenteru překreslil snippet, kterému už byly podle všecho předány proměnné ještě před voláním ajaxové handle dotyčné komponenty?
- Lukeluha
- Člen | 130
Tipnul bych si, že přidání do košíku provádíš v handleru. Stejně
tak v handleru provádíš redrawControl
. A zároveň bych si
tipnul, že do šablony předáváš data o košíku v metodě
action
:) Životní cyklus je action → handle → render. Dej si
pozor na toto pořadí, načítání do košíku udělej v metodě render a
vše bude fungovat :)
- chikeet
- Člen | 160
Huh. Tak chyba byla klasicky mezi klávesnicí a židlí, prostě jsem zapomněla updatovat data košíku v service pro košík (mám tam na to lazy getter). Jinak do šablony předávám data snippetu v beforeRender, protože jde o data z layoutu, které se zobrazují na všech stránkách – jen pro doplnění.
Editoval chikeet (10. 6. 2015 22:35)