hledání ve stromu komponent
- Oggy
- Člen | 306
Oggy napsal(a):
Jak a dá se najít určitá komponenta ve stromu komponent podle jména?
Jak se tak dívám do dokumentace a API tak nejspíš ne.. mohu hledat jen v getComponent určité komponenty.. ale ne už v potomcích jejich potomků:-) ..
Jak tedy využíváte metodu lookup() ? ..
Můj příklad.. mám komponentu strukturaWebu a ta má potomky jednotlivé
sekce a ty zase další sekce atd..
A potřebuju na úrovni té yastřešující komponenty = struktura webu si
šahat do jednotlivých sekcí..uzlů..
- David Grudl
- Nette Core | 8228
Jde o to, jestli chceš hledat směrem vzhůru (pak použij Nette\Component::getParent(), Nette\Component::lookup() nebo Nette\Component::lookupPath()), nebo směrem dovnitř a pak použij Nette\ComponentContainer::getComponent().
Funkce getComponent může vracet nejen přímé potomky, ale i potomky
potomků atd. Třeba potomek menu
a jeho potomek item
lze získat přes getComponent('menu-item')
- Oggy
- Člen | 306
David Grudl napsal(a):
Jde o to, jestli chceš hledat směrem vzhůru (pak použij Nette\Component::getParent(), Nette\Component::lookup() nebo Nette\Component::lookupPath()), nebo směrem dovnitř a pak použij Nette\ComponentContainer::getComponent().
Funkce getComponent může vracet nejen přímé potomky, ale i potomky potomků atd. Třeba potomek
menu
a jeho potomekitem
lze získat přesgetComponent('menu-item')
ještě pro ujasnění.. hledat přes getComponent nelze pokud nevim v jaké
úrovni toho stromu componenta je?
…
getComponent(‚jmenocomponenty‘) hledá pouze v přímých potomcích..
nelze hledat o např. 2 úrovně níže podle jména?
- Mikulas Dite
- Člen | 756
Můžeš rekurzivně projít všechny potomky, https://api.nette.org/…ntainer.html#….