Persistent parameter ISSUE
- Durisvk
- Člen | 31
Ahojte. Mám nasledovný problém:
Vytváram control s persistentným parametrom $selected (typu array). V jej
šablone potom prevádzam link ktorý zavolá handle na nejaký signál. To
však nie je podstatné. Podstatné je to, že keď vo Factory, kde vytváram
tento control pridám do toho poľa niečo, v linku v šablone sa to nepredá.
Potom keď kliknem na ten link, do/z poľa sa pridá/odoberie niečo ďalšie a
to už sa zrazu na linku prejaví a persistentný parameter sa predá pomocou
GET requestu.
V krátkosti: pri prvom vykreslení kontrolky sa mi do linku nezahrnú prednastavené persistentné parametre, kdežto po invalidácii snippetu/redirecte už všetko fičí ako by malo.
Stretli ste sa už s niečim podobným?
- Durisvk
- Člen | 31
Tá komponenta je zdlhavá, ale podstata spočíva v týchto funkciách
Problém:
Funkciu select($value) volám z factory a
všetko prebehne bez problémov, $value sa mi uloží do
$selected, problém však nastáva keď sa renderuje template
kde vytváram takýto link:
Keď hneď po načítaní stránky prídem myšou nad odkaz, malo by mi ukázať perzistentný parameter v URL odkazu, to sa však nedeje. Keď potom kliknem na odkaz a spracuje sa signál handleToggle, až potom sa mi do URL odkazu pridá tento očakávaný persistentný parameter.
Otázka
Ako prinútiť Control aby do odkazu predával persistentný parameter hneď na
začiatku, kým sa ešte nespracuváva žiaden signál? V podstate, mal by ho
tam dávať vždy, bez ohľadu na to či je to signál alebo prvotný render,
lenže v mojom prípade to takto nefunguje.
- Durisvk
- Člen | 31
Azathoth napsal(a):
no, není to náhodou tím, že před zavoláním toho handle je v proměnné selescted akorát prázdné pole? a protože prázdné pole je defaultní hodnota, tak se v url neukládá. persistentní proměnná se předává jen, když nemá defaultní hodnotu.
Nie, práve že problém nastáva, keď sa selected nastavuje ešte vo factory, keď filter nie je ani attachnutý. Už vtedy sa do poľa pridáva jeden prvok, a myslel som si že by mi ho tam malo zobraziť (Debugger ukázal dokonca v beforeRender() že selected má jeden prvok a predsa nebol do linku zahrnutý)