Snippet v includované šabloně se nepřekreslí

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

Ahoj, mám latte šablonu do které includuji další latte (kvůli přehlednosti). Teď bych potřeboval pomocí ajaxu invalidovat snippet v jedné z includovaných šablon.

Bohužel nevím jak na to – když dám snippet do té includované šablony, tak se nic nezmění. Aby to fungovalo, musím obalit snippetem ten include šablony.

Jde to nějak udělat, aby se neaktualizovala celá šablona?

PŘÍKLAD:
Toto funguje:

**hlavní šablona testResult.latte**
...
{snippet resA}
	{include './resultType/resultA.latte'}
{/snippet}
{include './resultType/resultB.latte'}
{include './resultType/resultC.latte'}
...

**includovaná šablona resultA.latte**
...
{ifset $showImage}
	<img ... />
{/ifset}
...

Toto potřebuji:

**hlavní šablona testResult.latte**
...
{include './resultType/resultA.latte'}
{include './resultType/resultB.latte'}
{include './resultType/resultC.latte'}
...

**includovaná šablona resultA.latte**
...
{snippet resA}
{ifset $showImage}
	<img ... />
{/ifset}
{/snippet}
...

Handle metoda:

public function handleShowResA($cid) {
        $this->showImage  = TRUE;
        $this->flashMessage('text '.$cid, 'success');
        if ($this->isAjax()) {
            $this->payload->ok = TRUE;
            $this->invalidateControl('resA');
            $this->invalidateControl('flashes');
        } else {
            $this->redirect('this');
        }
    }

public function renderTestResult(){
...
	if($this->showImage == true){
		$this->template->showImage = true;
	}
...
}
David Matějka
Moderator | 6445
+
+3
-

Obal to makro {include} snippet areou a pak invaliduj oba (do prohlizece se posle jen ten snippet, ale snippetArea zajisti, ze se tam sablona inkludne a provede). viz doc

Editoval matej21 (4. 11. 2014 17:07)

n.u.r.v.
Člen | 485
+
0
-

ok, díky – funguje to…