Definice bloku v komponentě a vložení do @layout
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- David Matějka
 - Moderator | 6445
 
nepude to, layout nevidi do sablony komponenty. budes muset vymyslet jiny pristup.

- castamir
 - Člen | 629
 
Komponenty mohou mít více render metod a do každé z nich můžeš dát něco jiného (do jedné třeba formulář, do druhé skripty na jeho ovládání). Všimni si zejména názvu druhé metody renderJs a ve druhé ukázce si všimni makra control:
class MyControl extends Nette\Application\UI\Control
{
    public function render()
    {
        /** @var Template $template */
        $template = $this->createTemplate();
        $template->setFile(__DIR__ . '/control.latte');
        $template->render();
    }
    public function renderJs()
    {
        /** @var Template $template */
        $template = $this->createTemplate();
        $template->setFile(__DIR__ . '/javascript.latte');
        $template->render();
    }
}
a v šabloně, kde si vytvoříš instanci výše uvedené komponenty pak můžeš udělat následující:
{block content}
    <h1>Komponenta</h1>
    {control myControl}
{/block}
{block scripts}
    {include parent}
    {control myControl:js}
{/block}