n:foreach + n:snippet u dynamických snippetů odešle při ajaxu i koncový tag snippetu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- danik
- Člen | 56
Ahoj vespolek!
Tenhle kód se chová špatně:
<section n:snippet="articles">
<article n:foreach="$articles as $article" n:snippet="article-$article->id">
<h2>{$article->heading}</h2>
<a href="#">read more</a>
</article>
</section>
Mám-li komponentu se zhruba takovouhle šablonou, pak při ajaxovém požadavku, který překresluje jen ty dynamické snippety (např. při přidání nového článku) vyrenderuje Latte i koncový tag article a ten je tak odeslán v payloadu. Například v tomto konkrétním případě tedy ve Firebugu rozkliknu payload a vidím něco jako:
<script>
{
snippets: {
snippet-articleControl-articles-article-123: '... kod snippetu ... </article>'
}
}
</script>
Lze to obejít jednoduše tak, že foreach zapíšeme místo n:makrem klasicky:
{foreach $articles as $article}
<article n:snippet="article-$article->id">
...
</article>
{/foreach}
Jen jsem to chtěl zareportovat, možná se to už řeší a i vyřešilo, nevím. Problém je v Nette 2.0.8 a teď jsem ho otestoval i v 2.0.12, kde je taky.
Mír :-)