Lze přes ajax přenášet flashMessage?

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

Zdravím,
jde nějak zprovoznit vyskakování flashMessage při ajaxovém požadavku?
Používám komponentu flashMessage a nějak se mi nedaří :(
Zkoušel jsem šablonu komponenty obalit do snippetu a invalidovat na každým místě, kde vypisuju flashMessage –

$this->getPresenter()->flashMessage(...)

Ajaxem mi bohužel přijde prázdná odpověď – {state:[]}

Nějaký rady, tipy?
Díky

Editoval CZechBoY (30. 7. 2014 10:14)

Šaman
Člen | 2666
+
0
-

Na komponentu se zatím vyprdni, použij klasické flashmessage ze Sandboxu a jen je obal snippetem a ten překresluj. Všechno je v presenteru, takže překresluješ taky z něho, případně z komponenty $this->presenter->redrawControl('flashes');
Jestli na komponentě trváš (a máš ji odzkoušenou bez ajaxu že funguje), tak ji obal už v šabloně presenteru snippetem a překresluj zase z presenteru. Když máš snippet v šabloně komponenty a překresluješ v presenteru, tak to může zlobit.

CZechBoY
Člen | 3608
+
0
-

Jo díky.
Obalil jsem výpis komponenty už v @layoute.latte a tam to funguje :-) potom v BasePresenteru(z Pandova návodu na návštěvní knihu)

	public function afterRender() {
		if ($this->isAjax() && $this->hasFlashSession()) {
			$this->invalidateControl('flashMessage');
		}
	}

a jede to.
V šabloně modulu jsem to teda zkoušel marně :-(
Nicméně konec šťastný a naštěstí to nezabralo ani moc času.