Nepřekreslí se snippet v komponentě akcí v presenteru
- kuon
- Člen | 17
Ahoj,
mám několik vnořených komponent: uredniDeska->zprva->diskuse. První
dvě načítám přes Multiplier. Přijde mi hloupé mít tam u každé diskuse
formulář pro přidání příspěvku, takže mám jen jeden v presenteru a
potřebná data si do něj vkládám přes JS. Vše mi funguje, ale po
odeslání formuláře se mi nepřekreslí snippet s diskusí.
V presenteru volám:
$this['uredniDeska-'.$kod_skupiny]['zprava-'.$kod_zpravy]['diskuse']->handleNacti($kod_diskuse);
A v komponentě mám:
public function handleNacti($h_t)
{
$this->nacti_diskusi($h_t);
$this->redrawControl('SNI_diskuse');
}
Handle se mi provede, ale snippet se nepřekreslí – nepřibude tam ten nový koentář. Pokud zavolám signál přímo z komponenty pro odstranění komentáře, tak vše proběhne správně včetně překreslení snippetu. Mám dát raději ten formulář přímo do komponenty diskuse a bude se načítat s každou diskusí nebo to mohu nechat takhle a jde nějak zprovoznit to překreslení snippetu v zanořené komponentě akcí z presenteru?
- Marek Bartoš
- Nette Blogger | 1280
Handle bys neměl nikdy volat sám, jeho zpracování je trochu složitější než zavolání metody, viz Presenter->processSignal() Nejspíš ti to nefunguje kvůli tomu.
Nevidím důvod, proč by komponenta pro přidání komentáře neměla být součástí konkrétní diskuze, logicky tam patří. Tím že ji dáváš do presenteru porušuješ zapouzdření a imho si zbytečně komplikuješ život.
Editoval Marek Bartoš (16. 11. 2022 13:11)