Vnorene komponenty a jejich parametry

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MartyIX
Člen | 217
+
0
-

Mam komponentu participantList a v ni vnorenou komponentu subcomponent a do komponenty subcomponent se mi neposilaji parametry (do handle{jmeno}), asi nekde delam neco, co bych fakt nemel.

Moje debugovani:

funkce initGlobalParameters()

https://github.com/…resenter.php#… – pred touto radkou mam parametry:

array(9) {
  ["id"]=>
  string(0) ""
  ["action"]=>
  string(7) "default"
  ["subcomponent-o"]=>
  string(3) "255"
  ["participantsList-id"]=>
  string(2) "40"
  ["participantsList-show"]=>
  string(1) "1"
  ["participantsList-subcomponent-o"]=>
  string(3) "255"
  ["do"]=>
  string(47) "participantsList-subcomponent-deleteParticipant"
}

To vypada rozumne, parametr $o, ktery chci dostat do subkomponenty se tam vyskytuje a ma spravnou hodnotu.

For cyklus https://github.com/…resenter.php#… se provede a v poli globalParams je:

array(2) {
  ["subcomponent"]=>
  array(1) {
    ["o"]=>
    string(3) "255"
  }
  ["participantsList"]=>
  array(2) {
    ["id"]=>
    string(2) "40"
    ["show"]=>
    string(1) "1"
  }
}

To vypada na prvni pohled v poradku. Dobre, takze rekapitulace predchoziho je pouze to, ze parametry z adresniho radku mame zpracovane v poli $presenter->globalParams. Okey.

Jak se dostanou parametry do komponenty? Dela to metoda attached (UI/PresenterComponent.php)

https://github.com/…omponent.php#L76

Nyni jsem si zkusil vypsat:

# $this->getUniqueId()
string(29) "participantsList-subcomponent"

# $presenter->popGlobalParameters($this->getUniqueId()) -- tj. parametry pro komponentu, ktere se vezmou z $presenter->globalParams.
array(0) {
}

# $this->getName() -- tj. nazev komponenty
string(12) "subcomponent"

Problem tedy je, ze v $presenter->globalParams je klic „subcomponent“, ale hleda se klic „participantsList-subcomponent“

Prijde mi tedy, ze problem je v ukladani parametru a ne pri vyzvedavani. Narazil jste na toto nekdo take?

Diky!

PS: Debugoval bych dal, ale uz dnes nemuzu.

MartyIX
Člen | 217
+
0
-

https://github.com/…1a7147cafe64 – vyreseno timto commitem.