Problém s persistentní proměnnou v komponěntě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- froge
- Člen | 1
Dobrý den,
mám následující situaci:
V metodě newItemFormSubmited se invalidují dvě komponenty. Jedna
z komponent je testovací komponenta s persistentní proměnou.
Když má testovací komponenta natvrdo nastavenou persistentní proměnou
($component->variablePersistent = $this->team;), tak se při invalidaci
vyrendruje jako první před komponentou gridu.
potřeboval bych zachovat pořadí vyrendrování. Když persistentní
proměnnou nenastavím vše se chová normálně (vyrendrování komponenty
gridu a poté vyrendrování testovací komponenty).
Používám Nette 2.1.12 a php 7.0.7.
public function newItemFormSubmited(\Nette\Application\UI\Form $form) {
$f = $this->getComponent('grid');
$f->invalidateControl();
$test = $this->getComponent('test');
$test->invalidateControl();
}
protected function createComponentTest($name) {
$component = new Test();
$component->variable = $this->team;
$component->variablePersistent = $this->team;
return $component;
}
class Test extends \Nette\Application\UI\Control {
/** @persistent int */
public $variablePersistent;
public $variable;
public function render() {
$this->template->setFile(__DIR__ . '/test.latte');
$this->template->value = $this->variable;
$this->template->variablePersistent = $this->variablePersistent;
$this->template->render();
}
}