Zpracování formuláře ve vnořené komponentě

kuldik2
Člen | 14
+
0
-

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 | 1146
+
0
-

Viz https://doc.nette.org/…n/components#…
Používáš persistentní komponentu, ale už není zřejmé, jestli používáš i persistentní parametr

kuldik2
Člen | 14
+
0
-

No jasně. Pro oči už nevidím. Proměnná perzistentní sice je, ale nebyla public !!!!!

Díky