Invalidace snippetů mezi presentery

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
akadlec
Člen | 1326
+
0
-

Mám jeden presenter co mi zobrazí editovanou položku, jsou tam nějaké detaily a pak výpis prvků které se dají extra editovat. Když jeden z prvků edituju, tak si jej otevřu do modálu kde mu zobrazím form, provedu editaci a uložím. A protože to je v podstatě jiný prvek, má to svůj vlastní prestener s action pro editaci.

Pokud je to zpracováno klasicky bez ajaxu, tak není problém, po uložení udělám redirect zpět na editaci ze které jsem vycházel. Ale když to submitnu pomocí ajaxu tak abych nedělal redirect v ajaxu chci invalidovat jen konkrétní snippety co to ovlivnilo. Jenže problém je ten že ten snippet co vypisuje prvky je samo v jiném presenteru.

Zatím to mám vyřešeno tak že si tu komponentu co chci invalidovat si přidám taky do toho presenteru ve kterém jsem a provedu invalidaci, ale mám takové tušení že to není moc ok co?

Dalším řešením může být to že editaci prvku nedám do vlastního presenteru ale necham v tom původním, ale tady se mě zase nelíbí že v presenteru co zpracovává Jednu hlavní entitu budu zpracovávat i jinou

A nebo je řešení i v ajax režimu dělat redirect, tím se invaliduji korektní snippety že.

Etch
Člen | 403
+
0
-

Osobně to dělám tak, že mám dvě komponenty, kde jedna zařizuje výpis a druhá modal. V té která dělá modal mám pak vlastní metodu na invalidaci, která udělá lookup na presenter a invaliduje snipety.

akadlec
Člen | 1326
+
0
-

Což samozřejmě neřeší invalidaci mezi presentery že ;)

Etch
Člen | 403
+
0
-

Jen jsem tím chtěl naznačit, že jsem po nějaké době „rezignoval“ na tu variantu se dvěma presentery, protože mi přijde praktičtější mít komponentu na editaci, která se kompletně o sebe postará.

Pokud potřebuji editaci zobrazit přímo v presenteru k tomu určeném, tak prostě zobrazím danou komponentu a o nic se nestarám. Pokud naopak potřebuji editaci zobrazit v nějakém jiném presenteru v nějakém modalu jako pouze „pomocnou rychle přístupnou editaci“, tak opět pouze zobrazím danou komponentu a opět se nemusím o nic starat, protože daná komponenta má celou obsluhu přímo v sobě.

akadlec
Člen | 1326
+
0
-

Jo ták ;) no ja to takhle zatím taky řeším, resp. ty komponenty mám v patřičných presenterech a tudíž je můžu mezi sebou invalidovat, jen mě to nepřipadá až tak čisté :(