vyvolání flashmessage při vytváření komponenty

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

Ahoj, narazil jsem na takový problém a nevím zda je chyba na mé straně nebo jestli to tak opravdu je v nette.

V metode createComponentSomeControl() se snazim vyvolat $this->flashMessage() ale zpráva se prostě nezobrazí. Řešil jste to někdo ? Díky za rady

Pavel Kravčík
Člen | 1183
+
0
-

A je to v presenteru? Pokud ne $this->presenter->flashMessage(). V opačném případě máš potom redirect nebo redraw? A pokud ani to nepomůže, tak jsi si jistý, že je vypisuješ v @layout?

Editoval kzk_cz (29. 6. 2015 12:30)

kleinpetr
Člen | 480
+
0
-

Jde o to, že když při vytváření komponenty zachytím exceptionu, tak vrátím jakousi EmptyControl a rád bych aby se zobrazila i flashmessage s chybou. Problém bude v tom, že když dám redirect tak se to zacyklí a redraw je mi v tomhle případě k ničemu..

Unlink
Člen | 298
+
+1
-

Skôr by ma zaujímalo účel vytvárania flash message v továrničke komponenty.

Ono pokiaľ sa vytvára ta komponenta až pri renderingu, tak zvyčajne máš už flash messages vypísané.

kleinpetr
Člen | 480
+
0
-

Jojo, narazil jsem teď při redirectu na abortException. Takže celkově je to na prd.

No komunikuji přes api se serverem. A mám například komponentu listControl v továrně si udělám request pro stažení dat a vykreslím je v seznamu, ale wrapper, který se stará o requesty vyhazuje potřebné vyjímky když nastane nějaký stav. No a když například selže request tak se komponenta nevytvoří a spadne to vyjímkou.. chtěl bych ji odchytit a vypsat co se vlastně stalo jako to dělám na dalších 100 místech. :)

Unlink
Člen | 298
+
0
-

Tak riešenie by mohlo byť, že tu komponentu vytvoríš už skôr v action napríklad.

$komponenta = $this['nejakyControl'];

čo spôsobí že sa komponenta vytvorí skôr a mala by fungovať flash message.

kleinpetr
Člen | 480
+
0
-

Jop, tohle řešení funguje, nicméně se mi nelíbí :D takže to prozatím nebudu řešit a vrátím se k tomu později..

Unlink
Člen | 298
+
0
-

Ja viem že nieje pekné, ale pokiaľ tú komponentu vytváraš až pri renderingu, tak už nieje možné nastaviť flash message.
A keby si chybu vypisoval v tej EmptyControl?

kleinpetr
Člen | 480
+
0
-

Super nápad ! :) díky za pomoc

kleinpetr
Člen | 480
+
0
-

Jen mi teď nejde do hlavy proč mi nechce vypsat flasku takto:

$control = new EmptyControl();
$control->flashMessage('test');

napíše, že není připojena k presenteru, ale vždyť komponenty mají vlastní flashmessages ne ?