Nepřekreslení komponenty – prázdný JSON
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jan Endel
- Člen | 1016
Zdravím,
mám takový problém s ajaxovým překreslením komponenty. I po naprostém
osekání na minimum se nedaří ji přerenderovat, vrací se JSON s
„state[]“. V případě normálního volání vše proběhne korektně.
popořadě:
FrontPresenter:
class FrontPresenter extends BasePresenter
{
protected function createComponentCategoryControl()
{
$control = new \Product\Components\CategoryControl();
//$control = $this->context->createProduct_categoryControl();
$control->invalidateControl();
return $control;
}
}
default.latte:
{block content}
{control categoryControl}
CategoryControl.php
namespace Product\Components;
use Product\Models\Services\CategoryService;
use Nette\Application\UI\Control;
class CategoryControl extends Control
{
/** @persistent */
private $itemId;
public function handleChange($itemId)
{
$this->itemId = $itemId;
$this->flashMessage('Id změněno');
}
public function render()
{
$this->template->setFile(__DIR__ . '/templates/categoryControl.latte');
$this->template->id = $this->itemId;
$this->template->render();
}
categoryControl.latte:
<div>
ID: {$id}
{foreach $flashes as $flash}
<div class="flash {$flash->type}">{$flash->message}</div>
{/foreach}
<a href="{link change 3}" class="ajax">Test</a>
</div>
odezva:
{"state":[]}
používám jquery.nette.js z doplňků. Všechny soubory v pořádku načtené. Za případné nakopnutí co dělám špatně předem děkuju.
Editoval pilec (4. 3. 2012 7:03)