Nette ajax ne prekresleni ale prikresleni
- dehtak
- Člen | 113
Ahoj,
mam takovou otazku jde udelat nejak prikresleni nikoliv prekresleni.
Ma to bejt takova live edit stranka.
Proste klasickej vypis blocku
<div class="obal" n:snipet="block">
{foreach Blocks as block}
<div class="obsah">block->obsah</div>
{/foreach}
</div>
<a n:href="addEmptyBlock!">Pridat blok</a>
Vim ze bych to mohl udelat tak, ze vypisu z databaze blocky a pridam tam
prazdne pole a necham prekreslit. Tim padem se tam prida prazdny blok. Ale Co
kdyz Uzivatel upravil text v predeslich blocich (tinymce …) ? Tak po
prekresleni se mu tam nactou zase data z databaze.
Potrebuju pridat prazdnej blok tak, aby to neovlivnilo jiz vypsane bloky
z databaze.
Pouzit javascript a dat to tam append ? Napada vas nejake reseni. Mimochodem je
to komponenta , nikoliv Presenter.
Editoval dehtak (11. 10. 2020 11:34)
- David Matějka
- Moderator | 6445
naja (i nette.ajax.js) podporuji append pomoci specialniho atributu: https://naja.js.org/#…
- dehtak
- Člen | 113
no to je hezky ale handle prece nemuze vratit odpoved nebo jo ?
function haandleAddEmptyBlock(){
$this->template->render(__DIR__ . '/templates/emptyBlock.latte');
}
To je prece kravina
zkousel jsem to tak ze sem vytvoril prezenter kterej vrati jen tu prazdnou sablonu ale naja na to nejak nereaguje kdyz dam
naja.snippetHandler.addEventListener('afterUpdate', function() {
console.log('after');
});
Reaguje to pouze na handle
Mimochodem neni ten naja navod v cestine ?
Nejak to nechapu s tim naja apendem mohl bys prosim prisim uvest strucnej priklad ?
Nebude lepsi pouzit jquery ajax a normalne tu sablonu vyhodit z prezenteru a
dat jit tam prez append ?
Neni to hezky reseni ale je funkcni
Editoval dehtak (11. 10. 2020 14:02)
- David Matějka
- Moderator | 6445
v handle nic nerenderuj, pouzivej to jako snippety, jen tomu pridas ten atribut
<div class="obal" n:snippet="block" data-ajax-append="1">
{foreach $blocks as $block}
<div class="obsah">{$block->obsah}</div>
{/foreach}
</div>
a v handle akorat
$this->redrawControl('block');
$this->template->blocks = [(object) ['obsah' => '']];