Jak z komponenty provést invalidateControl

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

V komponentě mám formulář a po jeho odeslání chci obnovit snippet matches. Jak z komponenty obnovim snippet, ktery je ve stejne komponente?

...
//odeslani formulare
if (!$this->presenter->isAjax()) {
    $this->redirect('this');
} else {
    $this->invalidateControl('matches');
}

Sablona komponenty:

{snippet matches}
....
{/snippet}

S vypnutým Ajaxem script funguje

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Otázka zní, proč ti to nefunguje se zapnutým AJAXem. Co to znamená, zapnutý AJAX? Tohle by mělo normálně fungovat.

Ivorius
Nette Blogger | 119
+
0
-

Mám stejný problém. K zajaxovění používám doplněk nette.ajax.js, web běží na nette 2.0.4

Editoval Ivorius (29. 8. 2012 21:15)

Ivorius
Nette Blogger | 119
+
0
-

Vypadá to, že to nefunguje pouze v případě, kdy se využije šablona kterou nastavuji mimo základní render() komponenty (např. renderList() ) apod. Nevím jestli to je bug, ale asi by bylo dobré to někde uvést.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

To je bug Nette, při AJAXovém požadavku se snippety invalidují v render(), nikoliv v dalších view komponenty… existuje na to hack, doporučuji zapátrat v issues Nette (možná #160?)