Jak z šablony zavolat komponentu s parametrem?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kloban
- Člen | 123
Ahoj,
v presenteru mám vytvořenou tuto komponentu:
protected function createComponentJidelniListekFormUprav($id_jidelniListek)
{
$form = new UI\Form;
$form->addText('nazev', 'Název:');
$form->addText('popis', 'Popis:');
$form->addText('cena', 'Cena:');
$form->addHidden('id_jidelniListek')
->setDefaultValue($id_jidelniListek);
$form->addSubmit('ulozit', 'Uložit');
$form->onSuccess[] = $this->jidelniListekFormUpravSucceeded;
return $form;
}
A moje otázka zní. Jak ji mohu s šablony zavolat i s parametrem $id_jidelniListek. Volal jsem ji takto {control jidelniListekFormUprav}, ale nepřišel jsem na to jak tam napsat ten parametr.
Díky Dan
- Šaman
- Člen | 2666
Sem se parametr nepředává. Parametr se dá z šablony předat jen do
render metody, což by tobě nestačilo.
Do továrničky se parametr
předat nedá, musíš si ho předat přes členskou proměnnou
presenteru.
Editoval Šaman (8. 5. 2014 20:16)
- vitkutny
- Člen | 73
protected function createComponentJidelniListekFormUprav()
{
$form = new UI\Form;
$form->addText('nazev', 'Název:');
$form->addText('popis', 'Popis:');
$form->addText('cena', 'Cena:');
$form->addHidden('id_jidelniListek')
->setDefaultValue($this->jidelniListek->id);
$form->addSubmit('ulozit', 'Uložit');
$form->onSuccess[] = $this->jidelniListekFormUpravSucceeded;
return $form;
}
pokud potřebuješ volat z šablony za každou cenu můžeš použít UI\Multiplier
protected function createComponentJidelniListekFormUprav()
{
return new UI\Multiplier(function($id){
$form = new UI\Form;
$form->addText('nazev', 'Název:');
$form->addText('popis', 'Popis:');
$form->addText('cena', 'Cena:');
$form->addHidden('id_jidelniListek')
->setDefaultValue($id);
$form->addSubmit('ulozit', 'Uložit');
$form->onSuccess[] = $this->jidelniListekFormUpravSucceeded;
return $form;
});
}
a v sablone volat
{control jidelniListekFormUprav-1}
{control jidelniListekFormUprav-2}