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
+
0
-

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 :-)