Invalidace snippetu v komponentě

- MikeLacroix
 - Člen | 60
 
Zdravím, nedaří se mi zprovoznit překreslení snippetu v komponentě. Posílám nástin mého kódu (osekaný od nepodstatných věcí):
Presenter:
class SearchPresenter extends BasePresenter
{
    /** @var IProducts @inject */
    public $products;
    ...
    protected function createComponentProducts()
    {
        return $this->products->create();
    }
}
Component:
class Products extends Control
{
    ...
	public function render()
	{
		$this->template->setFile('products.latte');
		$this->template->render();
	}
	public function handleLoad()
	{
		$this->redrawControl('listing');
	}
}
Šablona presenteru:
{control products}
Šablona komponenty (products.latte):
{snippet listing}
  {rand()}
{/snippet}
<a class="ajax" n:href="load!">Další produkty</a>
Po kliknutí na odkaz „Další produkty“ se odešle ajaxový požadavek, ovšem snippet „listing“ se nepřekreslí. Nějaká rada, co dělám špatně?

- David Matějka
 - Moderator | 6445
 
kdyz se kouknes do dev tools v prohlizeci na network, jak vypada response od serveru?

- MikeLacroix
 - Člen | 60
 
Tak už jsem přišel na to, v čem je problém. V presenteru mi ajaxové volání odchytí tohle:
public function renderDefault()
{
	...
	if ($this->isAjax()) {
		...
		$this->sendResponse(new JsonResponse([...]));
	}
}
…takže do komponenty se ten ajaxovy pozadavek uz nedostane. Takze moje otázka teď zní trochu jinak:
Jak elegantně v presenteru zjišťovat, o jaký ajaxový požadavek se jedná? Zatím to mám uděláno přes kontrolu ‚do‘ parametru. Takže tam mám něco jako:
if ($this->isAjax() && $this->params['do'] != 'komponenta-signal') { ... }