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
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
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)