Zmena chovani Component::refreshMonitors – prohledavani do sirky VS hloubky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
honza.trtik
Člen | 10
+
0
-

Zdravim,
narazil jsem na zajimavy problem pri tvorbe vlastni FormComponent.
V komponente monitoruju pripojeni k presenteru:

	public function attached($component)
	{
		parent::attached($component);

		if ($component instanceof Presenter)
		{
			Debug::dump($this->form->valid); // Vyhodi vyjimku
		}

	}

Problem je ale v tom, ze Component::refreshMonitors prochazi strom do hloubky. To znamena ze prvni se zavola attached na FormComponente a az pote attached na samotnem Formu.
Vysledkem je to, ze v metode attached komponenty nelze volat napr. $this->form->valid, $this->form->submitted ktere predpokladaji, ze je form pripojen k presenteru.
Resenim by bylo zmenit Component::refreshMonitors tak, aby se strom komponent prochazel do sirky, pokud by to nevadilo na jinem miste v nette…

Editoval honza.trtik (15. 10. 2009 16:23)