Component or subcomponent name must not be empty string
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Honza Bedrna
 - Člen | 8
 
Zdravím, začínám s Nette a nejde mi vytvářet žádný link v Komponentách. V presenteru si normálně vytvořím komponentu:
Presenter:
protected function createComponentFoo(){
	retrun new FooComponent();
}
Componenta:
Class FooComponent extends \Nette\Application\UI\Control {
	public function render(){
		$this->template->setFile(__DIR__.'/foo.latte');
		$this->template>render();
	}
}
Sablona komponenty:
<a n:href=":Homepage:default">home</a>
Sablona view:
{control fooControl}
Vyjimka: Component or subcomponent name must not be empty string.
Co je špatně? Díky moc za rady!

- Vojtěch Dobeš
 - Gold Partner | 1316
 
Makro n:href je zkratka pro $control->link()
(makro {link ...}). A v komponentách se lze pomocí
link() odkazovat jen na signály této komponenty. Pro
mezipresenterové odkazování je třeba volat
$presenter->link(), pro což slouží makro
{plink ...}. Bohužel neexistuje atributová forma.
Tedy:
<a href="{plink :Homepage:default}">home</a>