Nette\Application\Control
Control je vykreslitelná komponenta.
Ta si umí navíc, kromě toho že se umí vykreslit, zapamatovat, jestli
při subrequestu došlo ke změnám, které si vyžadují jej překreslit.
K tomu slouží triptych metod invalidateControl(),
validateControl() a isControlInvalid(), což je
základem AJAXu v Nette.
Nette však nabízí ještě jemnější rozlišení, než na úrovni Controlů a to tzv. „snippetů“, nebo-li ústřižků.
Poznámka: pro jednoduchost k pochopení budu v následujících odstavcích brát Control jako komponentu. To že je vykreslitelná vyplývá z překreslovací vlastnosti snippetů.
Lze tedy invalidovat/validovat na úrovni těchto snippetů (každá komponenta může mít libovolné množství snippetů). Pokud se invaliduje celou komponentu, tak je i každý snippet považován za invalidní. Komponenta je invalidní i tehdy, pokud je invalidní některá její subkomponenta. Komponenta, která přijímá signál, je automaticky označena za invalidní.
Díky invalidaci snippetů přesně víme, které části kterých prvků bude potřeba překreslit.
Komponenta (tedy přesněji vykreslitelná komponenta Control) nepředstavuje pravoúhlou oblast ve stránce, ale logickou komponentu, která se může renderovat i do více podob. Každá komponenta může být navíc na stránce vykreslena vícekrát, nebo podmíněně, nebo pokaždé s jinou šablonou atd.
Viz také:
- Control API reference
- IPartiallyRenderable API reference
- Ajax & Snippety
