AJAX v komponeně a předávání parametru do render()
- j0hny
- Člen | 33
Dobrý den,
řeším teď problém s ajaxem zobrazovanou komponentou. Dostal jsem zadání na přepis existujícího kódu kvůli zrychlení. Původní struktura problému byla následující:
Pro zjednodušení to napíšu obecně:
Máme nějakou nabídku v db, pro ní je libovolný počet míst a pro každé
místo libovolný počet roků. U každého roku si můžeme zobrazit
detail.
Řešeno to bylo tak, že v komponentě nabídky se vytvořily komponenty pro místa a v nich komponenty pro roky.
U každého roku se pak vytvořila komponenta s detailem která byla defalutně skrytá a při kliknutí na button se AJAXem načetla její obsahová část (jediná součást komponenty viditelná před ajaxovým požadavkem je onen button) a vypsala se.
Moje řešení spočívá v tom, že všechny komponenty slučuji do jedné + komponenty pro detail.
V původním řešení se komponenta s detailem vytvářela až po vytvoeřní roku, čili už při vytváření znala místo a rok. To teď není možné, proto jí místo a rok předávám až do metody render() ze šablony, namísto konstruktoru.
Problém nastane ve chvíly kdy se pokusím o ajaxový požadavek – hodnota se do render nepředá.
Neví někdo proč tomu tak je a případně jak to obejít/opravit nebo to vyřešit jinak?
Omlouvám se za přílišnou obecnost, ale bohužel sem nemůžu postnout přímo kód.
- Vojtěch Dobeš
- Gold Partner | 1316
Řešení tě asi nepotěší – do metody render
skutečně
nemá smysl nic předávat, s AJAXem to prostě není kompatibilní
z hlubších principiálních důvodů. Správnou cestou je vše nastavit
v továrničce, resp. v životním cyklu presenteru (action
a
render
metody).