Nefunkční ajax v komponentě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Hauron
- Člen | 26
Zdravím. Snažím se už docela dlouho přijít na to kde mám chybu v následujícím :
Snažím se napsat komponentu, která se bude AJAXově překreslovat. Při zpracování požadavku je mi ovšem vrácena celá stránka. Ajax jsem zatím testoval v podobném rozsahu přímo v aplikaci a tam vše fungovalo, po přesunutí do komponenty je někde něco špatně.
Používám PHP 5.3.3 a Nette 2.0beta
komponenta :
class SrvDirList extends NControl
{
private $currentpath = false;
public function __construct($path = false)
{
$this->currentpath = $path;
parent::__construct();
}
public function handleChangeDir($cesta)
{
$this->currentpath = $cesta;
}
public function render()
{
$this->template->setFile(dirname(__FILE__) . '/SrvDirList-default.latte');
$this->template->path = $this->currentpath;
$this->template->path1 = 'Cesta1';
$this->template->path2 = 'Cesta2';
$this->template->render();
}
Šablona :
{snippet}
<div class="SDL_FullIcon" name="{link changedir $path1}">
Cesta1
</div>
<div class="SDL_FullIcon" name="{link changedir $path2}">
Cesta2
</div>
{$path}
<script>
$('.SDL_FullIcon').dblclick(function(){
$.get($(this).attr('name'));
});
</script>
{/snippet}
V presenteru je vyvoláváno standardně pomocí {control dirList}.
- Hauron
- Člen | 26
https://doc.nette.org/…ication/ajax
„Komponenta, která přijímá signál, je automaticky označena za invalidní.“
- 22
- Člen | 1478
podle toho to tak vypadá, ale několik poznámek:
- míchat české a anglické názvy proměnných je ble
- pomlčka v názvu šablony by zasloužila vyměnit za podtržítko
- zapni si laděnku a vypni zachytavání vyjímek
- pro debugovaní ajaxu je nejlepší Fireloger v kombinaci Debugger::firelog()
- zjisti si, jestli je snippet po requestu opravdu invalidní