Při invalidaci snippetu nad vnořenou komponentou chce ajax rendrovat rodičovskou komponentu

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

Zdravím, mám Komponentu Content a v ní mám komponentu Page. Komponenta Content nemá metodu render, protože neni nikde vykreslovaná. V šabloně je vykreslená jen page takto {control content-page} která samozřejmě render má. Má i vlastní šablonu a vše funguje OK, dokud nedám do šablony snippety a nezavolám nějaký handle v komponentě Page. Ten vypadá takto:

public function handleTest(){
	$this->invalidateControl('test');
}

Pokud zavolám tento handle vratí se mi error 500 ve firebugu je hláška:

Nette\MemberAccessException: Call to undefined method Component\ContentControl::render()

No ona ta metoda render u komponenty Content opravdu není, ale ta by se přece neměla volat ne? Vždyť já volám invalidaci na komponentě Page a ne Content. Tomu nerozumím. Poradí někdo co asi dělám špatně? Díky.

David Grudl
Nette Core | 8143
+
0
-

Zkus tu komponentu vytvořit jako potomka Nette\Application\UI\PresenterComponent namísto Control.