Snippet v includované šabloně nevrací json, ale html
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Taco
- Člen | 50
Mám následuájící strukturu:
- ArticlePresenter
- v něm mám komponentu ArticleControl
- a v ní mám formulář Form
V šabloně ArticlePresenteru mám:
{snippet}
{control $control['create']}
{/snippet}
Součástí formuláře je jednoduchý dynamcký prvek (kdyby/forms-replicator), s tlačítkem přidávájící položky:
<?php
function processAddRow(SubmitButton $button)
{
$el = $button->parent->createOne();
$form = $button->form;
if ($form->presenter->isAjax()) {
$form->parent->redrawControl();
$form->presenter->redrawControl();
}
}
?>
Javascriptovou obsluhu jsem použil default:
$(function () {
$.nette.init(); // https://componette.org/search/?q=vojtech-dobes%2Fnette-ajax-js
});
Takhle jak to popisuji, to funguje. Jenže já bych rád, abych mohl v šabloně napsat něco takového:
{snippetArea}
{include 'create.form.latte', control => $control['create']['form']}
{/snippetArea}
Přičemž šablona create.form.latte:
{snippet}
{control $control}
{/snippet}
což mi nefunguje: vrátí to ajaxový požadavek, vrátí to výřez toho formuláře, ale není v json, ale v html.
Poctivě jsem hledal, a poučil se o mnoha tajemstvích (snippetArea, $this->template->_form = $this[‚selectForm‘];), ale tohle jsem zatím nedal.
Díky za postřehy i vysvětlení.
Editoval Taco (2. 4. 2015 17:53)