Nette AJAX - Uncaught TypeError: $.nette is undefined
Jak vyřešit chybu Uncaught TypeError: $.nette is undefined, která se může zobrazit v Nette projektu, když chceme použít AJAX?
Mějme např. tento kód:
$.nette.ajax(
{
url: $(this).attr('data-href'),
data: {variantId: $(this).attr('data-id')}
});
Který může vyvolat chybu níže.
Chyba
Uncaught TypeError: $.nette is undefined
Řešení
Je potřeba použít novější js knihovnu pro obsluhu snippetů - Naja.
npm install naja
AJAX požadavek pak bude vypadat třeba takto:
naja.makeRequest(
'POST',
$(this).attr('data-href'),
{variantId: $(this).attr('data-id'), amount: amount}
);
pouzivam nette naja ajax a mam zajimavy problem. Pokud jsou nejake polozky, tak se redraw normalne provadi a funguje to na jednicku jak je ocekavano.
Tzn. $this->redrawControl('products'); probehne.
Ale problem nastane, kdyz v danem snippetu je obsah a ja potrebuji prekreslit, ze tam zadny obsah nasledne byt nema. Tzn. mam napr. produkty, neco prefiltruju ajaxem a pak to zadne produkty nesplnuji a ja potrebuji ty predesle produkty odstranit.
Vyzkoumal jsem, ze v takovem ajax XHR pozadavku nejsou data pro tento snippet a tim padem se nic neprekresluje.
Opravdu nevim co s tim, poradite nekdo? Diky