Dynamické snippety se neinvalidují
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- miler
- Člen | 75
Podle návodu na doc.nette.org chci použít dynamické snippety pro smazání řádku tabulky. Požadavek se mi odešle, je ajaxový, v XHR odpovědi jsou správná data pro snippet, ale tabulka se mi aktualizuje (řádek zmizí) až po refreshi stránky. Přitom všechno vypadá na první pohled v pořádku. Nevidíte prosím někdo čím to může být že se mi to neobnoví? Díky.
Handle:
public function handleDelete($item) {
$this->objects->deleteItem($item);
$this->template->itemsTree = $this->objects->getAll();
if ($this->isAjax()) {
$this->invalidateControl('itemsList');
} else {
$this->redirect('this');
}
}
Template:
{block content}
{snippet itemsList}
<table n:snippet="itemsContainer">
<tr>
<th>Položka</th>
<th>Akce</th>
</tr>
{foreach $itemsTree as $id => $currentItem}
<tr n:snippet="item-$id">
<td>{$currentItem}</td>
<td>
<a class="ajax" n:href="delete! $id" data-confirm="Určitě?">Delete</a>
</td>
</tr>
{/foreach}
</table>
{/snippet}
{/block}
XHR response:
array(0) {
}
{"snippets":{"snippet--itemsList":"
<table id=\"snippet--itemsContainer\">\n
<tr>\n
<th>Polo\u017eka<\/th>\n
<th>Akce<\/th>\n
<\/tr>\n
<tr id=\"snippet--item-11\">\n
<td> Dům<\/td>\n
<td>\n
<a class=\"ajax\" data-confirm=\"Ur\u010dit\u011b?\"}\"
href=\"\/test\/www\/object\/?item=11&lang=cs&do=delete
\">Delete<\/a>\n
<\/td>\n
<\/tr>\n
<\/table>\n"}}
Editoval miler (21. 1. 2013 17:08)