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
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 | 8218
Zkus tu komponentu vytvořit jako potomka Nette\Application\UI\PresenterComponent namísto Control.