Jak na dynamicke generovani linku v komponente

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

Resim nasledujici problem – mam komponentu, ve ktere potrebuju filtrovat DB polozky podle uzivatelem zadaneho filtru. Toto filtrovani probiha AJAXove, pomoci JS se ziskaji hodnoty uzivatelskeho filteru a nyni potrebuju filtr poslat komponente jako signal. Problem je ten, ze v sablone mam link vygenerovany „natvrdo“, zatimco bych jej potreboval generovat dynamicky v zavislosti na zadanem filtru.
Pro ilustraci nasleduje cast komponenty a sablona:

public class ClientFilter extends Control {
	public function handleGetClients(array $filter) {
		$clients = array();

		foreach ($this->client_facade->getClientsByBookingFilter($filter["name"], $filter["phone"], $filter["email"]) as $client) {
			$clients[] = array("id" => $client->id, "name" => $client->fullName." - ".$client->phone);
		}

		$this->presenter->sendJson(array("clients" => $clients));
	}
}

js v latte sablone:

<script>
var base_link = {link getClients!, filter => [name => "__replace_name__", email => "__replace_email__", phone => "__replace_phone__"]};
$(filter).change(function(){
	base_link = base_link.replace("__replace_name__", $("input#"+name_id).val());
    base_link = base_link.replace("__replace_email__", $("input#"+email_id).val());
    base_link = base_link.replace("__replace_phone__", $("input#"+phone_id).val());
	$.ajax({
        "url": base_link,
         "method": "get"
     })// dalsi zpracovani

});
</script>

Zatim teda pouzivam placeholdery __replace_name__ atd a pak je v zavislosti na filteru nahrazuju, tenhle zpusob se mi ale nelibi a asi nebude uplne koser.
Jak to resite vy? Mate nejaky best-practice?

Diky za odpovedi