jak předat parametr do componenty vytvořené v presenteru
- Patrik Votoček
- Člen | 2221
froggy napsal(a):
Komponentu mám ale v presenteru vytvořenou tímto způsobem, ale snad by to mělo fungovat podobně:
ale no fuj když už žak už:
nic méně i tak doporučuju používat spíš továrničky
Jinak tohle je správně:
volá to jako by
echo $this['miniform']->render(17, 'formular.latte')
tj metodu render
na komponentě registrované jako
miniform
s parametry 17
a 'formular.latte
- Vojtěch Dobeš
- Gold Partner | 1316
Továrničky se dynamicky vytvářet nedají (IMHO je továrnička metodou
presenteru). Nicméně se dá přepsat metoda createComponent
, ale
pokud je možné se tomu vyhnout, je lepší se tomu vyhnout (když změníš
její chování, tak pak nemůžeš vytvářet klasické továrničky, nebo
možná můžeš, ale musíš na to myslet…). Prostě bude lepší se zeptat:
na co je to potřeba? Třeba se najde lepší řešení.
- Vojtěch Dobeš
- Gold Partner | 1316
ad pavouk) To je možná dynamická tvorba komponent, ale
továrnička != komponenta
. Továrnička je metoda začínající
na createComponent
a důvod její existence je, aby si hotovou
komponentu mohla aplikace vyžádat v libovolný moment (a dostala ji). Je to
kód, který instanci komponenty vytváří.
Editoval vojtech.dobes (17. 3. 2011 11:45)
- Jan Tvrdík
- Nette guru | 2595
Přetížení metody createComponent
mi přijde jako naprosto
čisté (pokud je správně použito) a běžně používané řešení. Často
je ale lepší využit něco takového: https://gist.github.com/537838
- joseff
- Člen | 233
Patrik Votoček napsal(a):
pavouk napsal(a):
Myslim ze hledas toto:
Ale no fuj!
Ale no fuj umí napsat každý, nechceš raději napsat jak je to správně něž psát že je něco špatně? Upřímě řečeno je to jediné řešení v tomto vláknu které spolehlivě funguje. Takže děkuji moc za tento příspěvek. Perfektně to vyřešilo můj problém!
- Jan Tvrdík
- Nette guru | 2595
Princip čistějšího řešení jsem popsal ve svém předchozím příspěvku. V závislosti na zvoleném řešení se to pak používá buď
nebo
- Patrik Votoček
- Člen | 2221
joseff napsal(a):
Ale no fuj umí napsat každý, nechceš raději napsat jak je to správně něž psát že je něco špatně? Upřímě řečeno je to jediné řešení v tomto vláknu které spolehlivě funguje. Takže děkuji moc za tento příspěvek. Perfektně to vyřešilo můj problém!
Za prvé nemusím hned psát řešení. Napsal jsem schválně jenom to co jsem napsal aby se člověk kterého se to týkalo zamyslel nejdříve sám (třeba na to příjde sám) a pak se případně zeptal proč je to fuj.
Za další sám sem se tě o několik postů předtím ptal co to znamená „dinamicky v presenteru“ (odpovědi jsem se nedočkal). Nehledě na to že 2 posty pod mým příspěvkem máš ono řešení.
PS: pláčeš na špatném hrobě.