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
 
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
 
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
 
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 | 668
 
Přepsal jsi totiž metodu attached, která normálně má na starosti naplnění komponenty parametry. Musíš zavolat parent:attached();