Snippet sa vykonava aj pri nesplneni obalujucej podmienky

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

Neviem, ci je to bug alebo feature, ale mam nasledovny problem.
Pouzite Nette 2.0.5 a sandbox.

Homepage/default.latte:

{block content}

<a n:href="invalidate!" class="ajax">invalidate</a>
{if false}
    {snippet run}
        {control nonExisting}
    {/snippet}
{/if}

HomepagePresenter.php:

<?php
public function handleInvalidate()
{
    $this->invalidateControl();
}
?>

Problem je v tom, ze ked sa vykonava signal invalidate cez ajax, tak sa neberie do uvahy podmienka {if false} a vo vyslednej spracovanej sablone sa definuje blok pre control non-existing. Tym padom to skonci na chybe. Pri non-ajax poziadavke je vsetko OK.

Editoval Matúš Matula (19. 9. 2012 18:08)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

To je feature, nebo spíš prostě implementační vlastnost. Výhodou je, že zbytek šablony se vůbec nevykonává…

Matúš Matula
Člen | 257
+
0
-

Takze vravis, ze osetrit to mozem jedine podmienkou vo vnutri snippetu, tak je?

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Přesně tak tomu je :).