Jak provést invalidaci vybraných komponent
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- bumprask
- Člen | 59
Právě, že takhle mi to nešlo. Komponentu lze invalidovat takto $this[‚nazev-komponenty‘]->invalidateControl(). Ovšem já bych spíše potřeboval získat seznam všech komponent a jednu po druhé takto invalidovat, existuje sice metoda getComponents(), která ale vrací iterátor, s kterým nevím jak pracovat. Poradil by někdo jak získat data za metody getComponents(), abych je mohl vypsat v cyklu a postupně invalidovat?
- Majkl578
- Moderator | 1364
S iterátorem jde pracovat podobně jako s poli, alespoň co se iterací týče. Lze tedy použít foreach:
foreach ($this->getComponents() as $component) {
$component->invalidateControl();
}
Nebo by to šlo i elegantněji jinak:
iterator_apply($this->getComponents(), function ($component) {
$component->invalidateControl();
return TRUE;
});