Nastavení onClick[] komponenty v presenteru – Nulování persistetních parametrů
- Prochy
- Člen | 91
Dobré odpoledne,
mám jednu komponentu, kde mám nastavený persistentní parametr, který se mi nastaví po Ajaxové události Selectu ve formuláři. Pokud nastavím v Presenteru událost onClick následně pro dvě tlačítka:
//v presenteru
protected function createComponentVisitComponent($name)
$component = new VisitComponent();
if (isset($form['visitForm']['goPayment']))
$component['visitForm']['goPayment']->onClick[] = callback($this, 'goPaymentFormSubmitted');
if (isset($form['visitForm']['saveVisit']))
$component['visitForm']['saveVisit']->onClick[] = callback($this, 'saveVisitFormSubmitted');
Tak mi to vynuluje ty persistentní parametr, což je pro mě vysoce nežádoucí. Tak bych měl dotaz, jestli je možné zachovat nějak persistentní paremtr a zároveň umožnit volat tlačítkem funkci v presenteru. Počítám, že může být chybně nastavený callback, ale nevim, jak správně ho nastavit.
Děkuji za rady
- Prochy
- Člen | 91
Tak ono to tím callbackem asi nebude. Nějak sem to testoval a stačí, když v presenteru při vytváření komponenty napíšu následující řádek, tak se mi persistentní parametry nastaví na NULL, což mi moc hlava nebere.
protected function createComponentVisitComponent($name)
$component = new VisitComponent();
$component['visitForm']
- Prochy
- Člen | 91
Tak jsem to zkoumal dál v čem by byl asi problém, a asi to bude tím, že když si vyžádám formulář v presenteru z komponenty, tak se formulář vytvoří dřív, než se stihnout nastavit persistentní parametry.
Protože pokud:
V Presenteru:
protected function createComponentTest($name){
$component = new TestComponent();
$component['testForm'];
dump("Presenter");
return $component;
}
V UI\Control
class .................
.
.
.
protected funcition createComponentTestForm(){
dump("Komponenta");
return new Form();
}
Tak se mi první vypíše Komponenta a poté Presenter, pokud zakomentuji $component[‚testForm‘], tak se první vypíše Presenter a poté Komponenta, tak vidim v tomhle problém, ale nějak se mi to nedaří vyřešit. Jediný způsob, co mě napadlo, tak je posílat v komponentě callback($this->presenter,akcePresenteru), což je funkční, ale jestli to je dobrý to nevim.
Editoval Prochy (18. 8. 2014 16:24)