Komponentě se nepředává parametr

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

Mám komponentu

use ...;
class ComponentName extends Control
{
	public function attached( $presenter )
	{}

	public function render()
	{
		$template = $this->template;
		$template->setFile('x.latte');
		$template->id = 1;
		$template->render();
	}

	public function handleAbraka( $id )
	{
		//edited
		$id; // null
		$this->getParam(); // prazdne pole

		$this->getPresenter()->getParam();
		/* array(2) { ["action"]=> string(7) "default"
			      ["do"]=> string(16) "ComponentName-abraka" }
		*/
	}
}

x.latte

	<a n:href="abraka! $id">Click it.</a>

Komponenta se vykreslí v pořádku. Odkaz se vykreslí bez chyb:

http://example.cz/?ComponentName-id=1&do=ComponentName-abraka

Handler Abraka se zavolá, ale parametr id se mu nepředá. Co dělám špatně?

Nette 2.0 Beta

Edit:
Doplnil jsem, co to vlastně vrací.

Editoval studna (11. 6. 2011 18:39)

Mikulas Dite
Člen | 756
+
0
-

Mělo by fungovat tohle

<a n:href="abraka!, $id">Click it.</a>

nebo

<a n:href="abraka!, id => $id">Click it.</a>
studna
Člen | 181
+
0
-

O to nejde, spíš mě zajímá, kam zmizel ten parametr, když je v URL. Když ji přepíšu na
 http://example.cz/?id=1&do=ComponentName-abraka

Tak se objeví v parametrech presenteru:

	public function handleAbraka( $id )
{
        //edited
        $id; // null
        $this->getParam(); // prazdne pole

        $this->getPresenter()->getParam();
        /* array(2) { ["action"]=> string(7) "default"
			      ["id"]=> string(1) "1"
                      ["do"]=> string(16) "ComponentName-abraka" }

        */
}

Editoval studna (11. 6. 2011 18:44)

bojovyletoun
Člen | 667
+
0
-

Přepsal jsi totiž metodu attached, která normálně má na starosti naplnění komponenty parametry. Musíš zavolat parent:attached();

studna
Člen | 181
+
0
-

A já si říkal, že mi v té metodě attached něco chybí. :) Díky moc.