Invalidace vice snippetu najednou

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

Ahoj,
chtěl bych se zeptat, jakým způsobem můžu po odeslání formuláře invalidovat víc snippetů? V submit akci uvnitř komponenty mám po zpracování formuláře (update dat v DB) následující kód:

$this->presenter->flashMessage('Tip byl editován','ok');
$this->presenter->template->message = "OK";
$this->presenter->invalidateControl('bottomPane');
$this->presenter->forward('Tip:listTips');
$this->presenter->invalidateControl('topPane');

Očekávané chování by mělo být následující:

  1. uloží se flash message a proměnná message do template + invaliduje se bottomPane snippet
  2. provede se listTips akce a invaliduje se topPane snippet

Aktuální chování – invaliduje se mi pouze topPane snippet … s tím bottomPane se nic nestane.

Díky za rady

jasir
Člen | 746
+
0
-

Bacha, po forwardu se již další řádky nevykonají, forward vyhodí vyjímku.

iguana007
Člen | 970
+
0
-

aha, tak jak to tedy udelat?

despiq
Člen | 320
+
0
-

mit to co chces invalidovat v render?
zpracovani formulare je signal pak bude render

Editoval despiq (9. 4. 2010 12:04)

iguana007
Člen | 970
+
0
-

Jen pro doplňení, jak jsem to vyřešil. Kdyby to někdo další hledal:

$this->presenter->flashMessage('Tip byl editován','ok');
$this->presenter->invalidateControl('bottomPane');
$this->presenter->actionListTips($values['id']);

Tj. po zpracování submitu pošlu flash message do BottomPane, kterou zároveň ivaliduji a na konci zavolám jinou akci v tomtéž presenteru, která má na konci invalidaci bloku TopPane.