Invalidace vnořených komponent
- mkrause
- Člen | 20
Ahoj, jsem trochu zmaten z invalidace vnořených komponent.
Příklad: existuje komponenta X se dvěma stavy, mezi nimiž může uživatel přepínat AJAXem – přepnutí stavu vyvolá signál dané komponenty. Dále existuje komponenta Y, která v sobě obsahuje dvě komponenty X (říkejme jim x1 a x2). Pokud vyvolám změnu stavu v x1, doputuje do ní signál a komponenta se stane invalidní. Tím se rovněž stane invalidní i její vlastník, tedy komponenta Y. Nette jí tedy pošle v JSON formátu klientovi, který jí zobrazí. V tuto chvíli komponenta x2 ztratí svůj stav, protože jí vytvořila obalující komponenta Y ve výchozím stavu – přitom vyslaný signál se komponenty x2 vůbec netýkal.
Přemýšlím, jestli by tedy v takovém případě neměla přijet klientovi jenom komponenta x1, když signál směřoval k ní? Pravda je, že aktuální stav komponent lze udržovat pomocí persistentních parametrů. A také je pravda, že kdyby se to chovalo tak, jak říkám, zřejmě by nebyly konzistentní AJAXové a neAJAXové požadavky. Je to kvůli tomu?
- Honza Kuchař
- Člen | 1662
Zkusil bych se podívat jak funguje TabControl + DataGrid. Tj. 2 ajaxové vnořené komponenty.
- mkrause
- Člen | 20
Jestli jsem to dobře pochopil, tak v tomto případě se DataGrid attachuje
přímo k presenteru, ne k TabControlu, což mi funguje, ale není to přesně
to, co jsem měl na mysli. Mně jde o případ, kdy si komponenta vytvoří
coby své potomky jiné komponenty, čili kdy je to organizované
takto: $presenter["Komponenta_A"]["Komponenta_B"]
Editoval mkrause (27. 10. 2009 14:43)