stránkování + nette.ajax.js – dynamická změna atributu data-ajax-append

Yaromil
Backer | 20
+
0
-

Ahoj,

snažím se vytvořit stránkování, kdy vedle tlačítka „Načíst další“ bude i klasické stránkování.

  1. pomocí tlačítka „Načíst další“ by mělo dojít k připojení / „append“ nového obsahu k stávajícímu
  2. po kliknutí na konkrétní stránku by se měl zobrazit jen rozsah položek vztažený k dané stránce

Problém je ten, že nemůžu přijít na to, jak elegantně přepínat / dynamicky měnit atribut data-ajax-append, aby 1) a 2) mohlo fungovat v symbióze vedle sebe.

Pokud se snažím dynamicky přepínat atribut např. pomocí proměnné $append v template (viz. níže), tak to bohužel nefunguje = po redrawControl(‚articles‘) se vymění obsah jen uvnitř DIVu snippetu, ale ne právě atributy přímo na něm. Čemuž rozumím a tak hledám vhodnou alternativu, jak tohle vyřešit. Nejlépe to vyřešit na straně PHP / Nette, abych nemusel zasahovat do JS.

Předem díky za radu!

{if $articles}
  <div class="articles-list" n:snippet="articles"{if isset($append) && $append} data-ajax-append="true"{/if}>
    <div n:foreach="$articles as $article" class="article">
      <div class="article-header">
        {$article->published|date:'d. m. Y'}
      </div>

      <div class="article-body">
        <h3>{$article->headline}</h3>
        <p>
          {$article->perex}
        </p>
      </div>

      <div class="article-footer">
        <a class="arrow" href="#">
          Více inforamcí
        </a>
      </div>
    </div>
  </div>

  <div n:snippet="paginator">
  {if $paginator}
    {control paginator}
  {/if}
  </div>
{else}
  <div class="flash">Je nám líto, ale aktuálně zde nejsou žádné aktuality.</div>
{/if}