Invalidace celého bloku dynamických snipettů (bez možnosti přidat obalový snippet)

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

Podle návodu tady: https://doc.nette.org/…ication/ajax#… je postup pro invalidování celho bloku dynamických snippetů obalit celý blok dalším snippetem a invalidovat ten.

Tenhle postup ale nejde použít vždy. Konkrétní příklad: v table mám blok dynamických snipettů tbody a v něm dynamické snipetty tr. Chci invalidovat celé body ale ne celou table.

Po troše experimentování jsem vytvořil tenhle hack:

<?php
	<tbody n:snippet="body">
	  {foreach $records as $id => $record}
	    {var $params = [
        	record => $record,
      	    iterator => $iterator
        ]}
        {if $redrawWholeBody}
  		  <tr id="{$_control->getSnippetId("row-$primaryString")}">
            {include #row-content, (expand) $params}
          </tr>
        {else}
          <tr n:snippet="row-$primaryString">
            {include #row-content, (expand) $params}
          </tr>
        {/if}
	{/foreach}
  </tbody>
?>

Do šablony si předávám proměnnou, která říká zda chci překreslovat celé body nebo jen dynamické snippety. Pokud překresluju celé body dynamické snippety vůbec negeneruju pouze daným řádkům přidám příslušné id.

Zdá se že to funguje, ale rád bych se zeptal někoho, kdo ví trochu líp jak snippety pracují jestli je tohle řešení ok.