NITTRO Prekreslenie snippetu po odoslani formulara z dialogu

tomas.stofik
Člen | 33
+
0
-

Zdravim Vsetkych. Vopred sa ospravedlnujem ak ide o malickost alebo problem medzi stolickou a PC no ak som skusal s Nittro JS vkladat data cez formular ktory je v Modal Dialogu tak sa nespravne aktualizuje zoznam vysledkov resp. ten posledny pridany sa po ajaxovom requeste objavi az po klasickom obnoveni stranky. skusal som vynulovat premenne data ktore vypisujem cez foreach no nic nepomohlo.
Formular je nasmerovany na action=„{plink add!}“ a vtejto medode pridavam a prekreslujem snippet „content“. Tusi niekto co robim nespravne? Ladenka nevypise nic a v log takisto nic nieje. Vopred dakujem

MajklNajt
Člen | 471
+
0
-

Tuším, že tam bude chyba niekde v kóde

Ages
Člen | 128
+
0
-

Ukaž kód, takto těžko radit.

tomas.stofik
Člen | 33
+
0
-
    // pridavanie zaznamu v BasePresenter
    public function handleAdd(): void
    {
		$this->mainModel->add(...);
		$this->getPresenter()->redrawControl('content');
		// tu som takisto skusal nacitat data do template nanovo alebo pridat do pola dat posledny vlozeny zaznam no stale nic
		$this->postGet('this');
	}

    // Nacitavanie zaznamov v BasePresenter startup metode
	public function startup()
	{
		$this->template->data = $this->mainModel->getUserData($this->user->getId())->limit(50);
	}

kod v modal dialogu (NittroJS)

<form method="post" data-ajax="true" action="{plink add!}">
<textarea name="userDataSave" required></textarea>
<button type="submit">save</button>
</form>

Este podotknem ze mi je dost divne ze ak chcem aby sa aktualizovali zmeny ktore som v kode spravil, musim stranku obnovit tri krat cez „hard refresh“ / (Shift + Obnovit) a mam podozrenie ze je to dovod preco sa data nenacitaju. Je to nejaka nova „cache feature“ v Nette o ktorej neviem? Cache na serveri vypnuta, gzip compression a vsetko ostatne disabled uz som hladal vsade no nikto podobny problem neriesil. Este mi napadlo ci niesu data nacachovane v Nette Database ale problem je ze trikrat musim stranku obnovit aj ked robim zmeny v latte sablonach. Cache som zatial nikam nedaval a mam zapnuty debug mode. Velmi pekne dakujem vsetkym.

Ages
Člen | 128
+
+1
-

Pokud data měníš v tom handleru, tak je přece ještě musíš poslat do šablony, což nikde nevidím. Ten startup se volá jako první viz. https://doc.nette.org/…n/presenters#… a bude tedy obsahovat data bez nového řádku.

Btw: pokud jsi to zkoušel a dal jsi to až za tu metodu $this->getPresenter()->redrawControl('content'); (v presenteru by mělo postačovat $this->redrawControl('content');), tak tam ta data také nemohla být, musíš ten snippet překreslit až jako poslední.

Editoval Ages (11. 7. 2021 10:47)

tomas.stofik
Člen | 33
+
0
-

Ages napsal(a):

Pokud data měníš v tom handleru, tak je přece ještě musíš poslat do šablony, což nikde nevidím. Ten startup se volá jako první viz. https://doc.nette.org/…n/presenters#… a bude tedy obsahovat data bez nového řádku.

Btw: pokud jsi to zkoušel a dal jsi to až za tu metodu $this->getPresenter()->redrawControl('content'); (v presenteru by mělo postačovat $this->redrawControl('content');), tak tam ta data také nemohla být, musíš ten snippet překreslit až jako poslední.

Je to tak no pokial tam nepridam okrem redraw aj redirect tak sa aktualizovane data nezobrazia a musim „rucne“ obnovit stranku. kazdopadne velmi pekne dakujem.