Invalidace celé komponenty ve stejném presenteru

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

Zdravím, při používání ajaxu a nette jsem narazil na problém u invalidace komponenty.

Mám šablonu, kde vykresluji několik komponent a při ajaxovém požadavku bych je potřeboval překreslit. Pročetl jsem si na webu několik informací o ajaxu, invalidaci a snippetech, ale nejsem z toho schopen vyvodit postup pro můj případ.

princip mám takto:

Presenter mi vytvoří stránku, i s komponentami. V komponentě pomocí jquery dialog otevírám formulář, který po odeslání použije ajax a předá data funkci presenteru actionNewAjaxProject

<?php

public function actionNewAjaxProject(){
        $form = $this->getHttpRequest()->getPost('form');
        $form['start'] = new \Nette\DateTime($form['start']);
        $form['end'] = new \Nette\DateTime($form['end']);
        $this->projektyRepository->newProject($form);
        $this->getComponent('projectList')->invalidateCOntrol();
        $this->terminate();

    }

?>

která data zpracuje a následně v ní volám invalidaci celé komponenty projectList. Tato komponenta byla vytvořena stejným presenterem, v kterém se nachází výše zmíněná funkce.

V logu nemám uvedenou žádnou chybu a přidání dat proběhne v pořádku, pouze se znovu nepřekreslí komponenta.

Mohl by někdo prosím poradit kde by mohl být problém?

(v komponentě se nachází i javascript (docela dost), ale ten by snad problém dělat neměl)

Editoval Muhahe (3. 12. 2013 18:40)

jiri.pudil
Nette Blogger | 1029
+
0
-

V první řadě smaž to $this->terminate().

Muhahe
Člen | 79
+
0
-

To už jsem zkoušel a pokud smažu #this->terminate() tak se dostanu do problému, kde daná funkce newProjectAjax nemá šablonu a přijde mi zbytečné vytvářet prázdnou šablonu. Nebo jsem někde hodně mimo?

Oli
Člen | 1215
+
0
-

To je právě špatně. Všechny akce musí mít šablonu nebo skončit přesměrováním. Pro to co chceš ty se používají signály. Ta tvoje metoda by měla být helperNewAjaxProject.

Muhahe
Člen | 79
+
0
-

děkuji moc za rady, hned to pudu zkusit