Volání komponenty presenteru z jiné komponenty
- Jack06
- Člen | 168
Zdravím, měl bych otázku, zda se dá a jak udělat něco v tomto smyslu:
Presenter: http://pastebin.com/K77xZ1Mj
CssLoader: http://pastebin.com/1nQqEN45
AssetManager: http://pastebin.com/3XbWKVre
TestControl: http://pastebin.com/PwnpfLye
template.latte: {control css ‚test.css‘}
O co jde. Běžně v šablonách bych rád volal control na css a na js. To je v pohodě. Chtěl bych to ale zavolat i z komponenty. Tam mi to bohužel vrátí, že komponenta css neexistuje, ikdyž mi $this->getParent()->getComponent(‚css‘) vrátí tu komponentu CssLoader.
- petr.jirous
- Člen | 128
Jack06 napsal(a):
Zdravím, měl bych otázku, zda se dá a jak udělat něco v tomto smyslu:
Presenter: http://pastebin.com/K77xZ1Mj
CssLoader: http://pastebin.com/1nQqEN45
AssetManager: http://pastebin.com/3XbWKVre
TestControl: http://pastebin.com/PwnpfLyetemplate.latte: {control css ‚test.css‘}
O co jde. Běžně v šablonách bych rád volal control na css a na js. To je v pohodě. Chtěl bych to ale zavolat i z komponenty. Tam mi to bohužel vrátí, že komponenta css neexistuje, ikdyž mi $this->getParent()->getComponent(‚css‘) vrátí tu komponentu CssLoader.
Technicky vzato si v komponente muzes udelat tovarnicku, ale neni to asi nejlepsi reseni.
class Komponenta extends UI\Control
{
public function createComponentCss()
{
return $this->getParent()->getComponent('css');
}
}
tohle by fungovat mělo, ale budeš mít rozhozený komponent model… nebude lepší řešení, než mít CSS a JS v komponentě? např. oddělené šablony a includovat je?
- Jack06
- Člen | 168
No jde o to že budu mít třeba komponentu na vykreslení galerie. Tzn ta bude mít nějakou slideshow no a k tomu je zapotřbí css a js. Nejlepší mi přijde aby si komponenta řekla že to chce a pokud to ještě není naincludované, aby se to přidalo.
Jinak to co jsi mi napsal nefunguje. Viz ten TestControl, tam to přesně takto mám :-)