Vyvolání handle z javascriptu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
microcz
Člen | 62
+
0
-

Tento topic je už přecijen tři roky starý, tak se raději ptám znovu.

Vytvořil jsem si javascriptový časovač, který postupně odpočítává sekundy a až dojde k nule zavolá moji callback funkci. Já bych v rámci callbacku chtěl zavolat handle, který refreshuje můj snippet, ale to se mi nedaří. Poradíte?

<div n:snippet="myContainer">
 ...
  <script type="text/javascript" src="{$basePath}/js/countdown.js"></script>
  <script type="text/javascript">cnt_countdown({$time}, function() { {link refresh!} });</script>
</div>
public function handleRefresh() {
  ...
  $this->redrawControl('myContainer');
}
David Matějka
Moderator | 6445
+
+1
-
$.nette.ajax({
	url: ...
});
microcz
Člen | 62
+
0
-

děkuji

microcz
Člen | 62
+
0
-

Tak jsem narazil ještě na menší problém…podle rady teď používám:

<script type="text/javascript">
cnt_countdown({$downloadIn}, function() {
  $.nette.ajax({
    url: '{link refresh!}'
  });
});
</script>
<a class="ajax" n:href="refresh!">Test manual</a>

Když se podívám přes CTRL+SHIFT+I na vyrenderovaný kód vidím:

<script type="text/javascript">
  cnt_countdown(1189, function() { $.nette.ajax({ url: '"\/~user\/project\/www\/?uname=image-163&do=refresh&presenter=Image"'  });   } );
</script>
<a class="ajax" href="/~user/project/www/?uname=image-163&amp;do=refresh&amp;presenter=Image">Refresh</a>

Jenže automatický refresh neproběhne a z konzole obdržím hlášku:

GET http://localhost/~user/project/www/%22/~user/project/www/?uname=image-163&do=refresh&presenter=Image%22 404 (Not Found)

Manuální link „Test manual“ funguje. Tzn nějakým záhadným způsobem se mi do URL vloží ten nesmysl: „http://localhost/~user/project/www/%22“. Poradíte čím to může být?

Quinix
Člen | 108
+
0
-

Máš tam uvozovky navíc. Link makro je vygeneruje takže ho nemůžeš ještě obalit apostrofy.

microcz
Člen | 62
+
0
-

no jo, díky :)