Problémy u klonovaného AppFormu
- Dragon Jake
- Člen | 20
Zdravím,
narazil jsem na menší problémy v klonování AppFormu. Mám obecnou
komponentu registerForm
, kterou následně klonuji na
userRegisterForm
a partnerRegisterForm
, v
createComponent<name>()
metodách následně
přidávám/odebírám/upravuji některé prvky a vlastnosti klonovaného
formuláře. Jenže…
- pokud v
registerForm
definuji skupiny prvků (addGroup()
), v klonované verzi se vytratí a nelze je ani opětovně nastavit skrzeadd()
, - nefunguje JavaScript, dle zdrojového kódu má vygenerovaný kód staré reference na IDčka prvků (InstantClientScript).
A teď otázka: dělám něco, co bych neměl, co je špatně a čemu absolutně nerozumím nebo nechápu, jak funguje a nebo je to chybka a mělo by to fungovat? Předem díky :)
edit:
3. zdá, se, že ze stejné příčiny nefunguje ani addError()
u validačních pravidel
Editoval Dragon Jake (20. 8. 2009 11:42)
- Blizzy
- Člen | 149
https://forum.nette.org/…are-tlacitka?…
Jinak tyto problémy by měly jít také řešit vytvářením tříd, které rozšiřují AppForm a v konstruktoru přidávají prvky formuláře. Tyto třídy se pak dají dědit, konstruktor rozšiřovat atd.
- Dragon Jake
- Člen | 20
Mno vida, tohle přesně jsem tu nemohl najít. Díky :)
Mě právě ještě napadlo řešení v podobě továrničky a dodatečné úpravy řešit až v action, ale nepřišlo mi to tak čisté a elegantní.
- David Grudl
- Nette Core | 8227
Dám raději do formuláře zákaz klonování, aby se podobným chybám předcházelo. (teda než a pokud se vyřeší způsob, jak formuláře klonovat).
- Honza Kuchař
- Člen | 1662
Nedávno jsem na tohle taky narazil. Nestačilo by jenom projít všechny controly a pravidla a nastavit jim parent na nového rodiče? nebo je v tom něco víc čeho jsem si nevšiml?
- Dragon Jake
- Člen | 20
honzakuchar napsal(a):
Nedávno jsem na tohle taky narazil. Nestačilo by jenom projít všechny controly a pravidla a nastavit jim parent na nového rodiče? nebo je v tom něco víc čeho jsem si nevšiml?
V tom objektu je toho celkem dost, reference na rodiče mě taky trkly… jen jsem si netroufl se do toho víc šťourat ;)