Snippet zavolanie js funkcie pri reloade
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jiri.pudil
- Nette Blogger | 1029
Pokud používáš nette.ajax.js, jeho rozšíření pro snippety vyvolává události před a po překreslení. Musíš si v té funkci jenom pohlídat, aby se vnitřek provedl jen pro ten jeden konkrétní snippet.
$.nette.ext('snippets').after(function ($el) {
if ($el.is('.my-snippet')) {
// ...
}
});
- akadlec
- Člen | 1326
takto by to taky šlo ale řek bych že by sis musel pak ještě někde přidat trigger co by ti tuhle event odpálil. Toto by se dalo udělat i obecně a pokud používáš nette.ajax tak do after metody by se to tam mohlo přidat aby to odpálilo nějakou event. Možná podnět pro @VojtěchDobeš
- kleinpetr
- Člen | 480
Já jsem něco podobného řešil pro edit form v modálnim okně a
vyřešil jsem to takhle:
template:
<a data-href="{link edit! $id}" class="editInModal">Upravit</a>
{snippet editFormSnippet}
<div class="modal" id="editModal">
..
..
{control editForm}
..
..
</div>
{/snippet}
presenter:
public function handleEdit($id){
..
..
$this['editForm']->setDefaults(..);
$this->redrawControl('editFormSnippet');
..
}
js:
$('.editInModal').click(function(){
var link = $(this).data('href');
$.nette.ajax({
url: link,
complete: function () {
$('#editModal').modal();
}
});
});
Snad to neni prasárna a bude se někomu hodit. Pokud má někdo lepší řešení, tak určitě přivítám :)
Editoval kleinpetr (6. 12. 2015 19:15)