Zpracování formuláře ve vnořené komponentě
- kuldik2
- Člen | 14
Dobrý den,
asi se stále nějak nedokáži poprat s persisetncí komponent. V presenteru
je umístěna komponenta, která je označena jako perzistentní.
#[Persistent('deviceUi')]
final class AppPresenter extends \Sdc\Presenters\SdcBasePresenter
{
..
public function createComponentDeviceUi(): \Sdc\Controls\UI\UiDevices
{
$control = new \Sdc\Controls\UI\UiDevices($this->providerDevice, $this->sdcFiler, $this->database);
return $control;
}
}
Tato komponenta má v sobě opět další komponentu
class UiDevices extends \Nette\Application\UI\Control
{
...
public function createComponentDeviceInterface()
{
switch ($this->device->getDefinition()->getMyDeviceTypeConfig()->getType())
{
case \Sdc\Config\DeviceConfigTypes::EPS :
$control = new \Sdc\DeviceUI\Eps($this->device, $this->sdcFiler,$this->database);
return $control;
case \Sdc\Config\DeviceConfigTypes::EZS :
$control = new \Sdc\DeviceUI\Ezs($this->device, $this->sdcFiler,$this->database);
return $control;
default:
$control = new \Sdc\DeviceUI\Unknown($this->device);
return $control;
}
}
}
V této poslední komponentě je umístěn formulář. Při jeho odeslání však dojde k zavolání pouze akce presenteru s jeho parametry, nikoliv však již k vykreslení následných komponent. Prostě a jednoduše, asi nejsem schopen donutit Nette k tomu, aby si předával jednotlivé parametry, které jsou nastaveny handlery uvnitř komponent.
Děkuji za případné reakce
- Marek Bartoš
- Nette Blogger | 1280
Viz https://doc.nette.org/…n/components#…
Používáš persistentní komponentu, ale už není zřejmé, jestli
používáš i persistentní parametr