snippety pro componenty uložené v Containeru
- zarubik
- Člen | 31
Ahoj,
nefungují mi invalidace snippetů component uložených
v Nette\ComponentModel\Container. Snippet se vůbec nepošle, zkoušel jsem to
i zadat zjednodušeně do Fifteen.
protected function createComponentTabs(){
$tabs = new \Nette\ComponentModel\Container;
$tabs->addComponent($this->componentFifteen(), 'fifteen');
return $tabs;
}
Invalidace jsem zkoušel takto:
public function renderDefault(){
$this['tabs']->getComponent('fifteen')->invalidateControl();
}
Nechal jsem i invalidaci přímo v tovarně komponenty fifteen. Zkoušel jsem to i v mé aplikaci a když jsem načetl bez containeru tak vše v pořádku.
Ještě načítání šablony:
{foreach $presenter['tabs']->getComponents() as $component}
{control $component}
{/foreach}
Potřebuji aktualizovat snippety zvlášť.. ne všechny componenty.
Jediný funkční řešení mi funguje pokud ukládám nazvy komponenty
s nějakým prefixem.
Ještě při testování ve fifteen jsem narazil na nedefinovanou proměnou
$since v https://api.nette.org/…ter.php.html#1106
To s dotazem nemá nic společného …
Díky za každé postrčení.
- Filip Procházka
- Moderator | 4668
Zkus to takto
protected function createComponentTabs()
{
$tabs = new Nette\Application\UI\PresenterComponent;
$tabs->addComponent($this->componentFifteen(), 'fifteen');
return $tabs;
}
Jako bonus ti bude fungovat
public function renderDefault()
{
$this['tabs']['fifteen']->invalidateControl();
}
:)
Editoval HosipLan (16. 11. 2011 8:26)