Dá sa nejako redrawnut snippet z javascriptu?
- oneRow
- Člen | 10
Čaute,
ako z nadpisu vyplýva – dá sa nejak redrawnúť snippet v javascripte?
Potreboval by som niečo ako je v prezentery
$this->redrawControl(„nazov“);
Dá sa to nejak zavolať v JavaScripte?
Skúsim bližšie popísať:,
– mám v šablóne kus kódu v JavaScripte a keď sa v ňom vykoná
nejaká akcia, potreboval by som prekresliť snippet, ktorý sa nachádza
v šablóne vyššie
Editoval oneRow (2. 5. 2016 19:18)
- David Matějka
- Moderator | 6445
Co si predstavujes pod „aktualizovat snippet“?
Snippety jsou jen div s nejakym ID a prave ajaxovym pozadavkem aktualizujes jeho obsah.
- oneRow
- Člen | 10
David Matějka napsal(a):
Co si predstavujes pod „aktualizovat snippet“?
Snippety jsou jen div s nejakym ID a prave ajaxovym pozadavkem aktualizujes jeho obsah.
No, jednoducho refreshnúť snippet. To čo robí $this->redrawControl() v prezentery. Ako hovoríš, aktualizovať jeho obsah.
Editoval oneRow (2. 5. 2016 19:35)
- oneRow
- Člen | 10
CZechBoY napsal(a):
No ale ten presenter přece zavoláš a zavoláš ho přes ten $.nette.ajax :-)
Aha, no tak potom som si neni isty kde mam chybu.
$.nette.ajax({
type: 'GET',
url: "Base:"
});
Toto mi nic nespravilo. Teda aspon v konzole firebugu mi nevypisalo, že by sa pokúsilo o nejaký AJAX. Skusal som tam dat aj Homepage:default, bez typu ale aj tak nič.
Editoval oneRow (2. 5. 2016 19:51)
- oneRow
- Člen | 10
Unlink napsal(a):
Použi
{plink Base:}
na vygenerovanie url$.nette.ajax({ type: 'GET', url: {plink Base:} });
Ďakujem, toto vyzerá už dobre. Problém mi však ostáva, že nemôžem tam dať Base, nakoľko je to abstraktná trieda. Abstraktnou by zrejme aj mala ostať. Ja tam totiž potrebujem aktualizovať iba modal okno, ktoré mám v @layout.latte. Je nejaká šanca to modifikovať tak aby v Base presentery redrawla tento snippet?
- Unlink
- Člen | 298
Môžeš skúsiť do base presentera pridať handle, ktorý zabezpečí to prekreslenie
public function handleSnippetRefraw() {
if ($this->isAjax()) {
$this->redrawControl('nazov');
}
a potom teoreticky by mohlo fungovať
$.nette.ajax({
type: 'GET',
url: {plink this do => snippetRefraw!}
});
Ale celkovo lepšie riešenie by bolo spraviť komponentu na toto.
Editoval Unlink (2. 5. 2016 20:40)