Chyba v syntaxi ajaxového požadavku

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

Ahojte, mohl bys vás poprosit o radu. Používám knihovnu na nette ajax.
Můj kód vypadá následovně:

$(document).ready(function(){
    var myVar = setInterval(function(){ load() }, 2000);
    $.nette.init();
});


function load(){
    var messange = $('#id').text();
    $.nette.ajax({
        type: "POST",
        dataType: "json",
        url: {link ready!},  // <--- zde mi to hlásí chybu
    data: { id: messange }
});
};

Bohužel mi to samozřejmě nefunguje :/ mohli byste mi prosím ten kód opravit?
V Layoutu natahuju jquery, za ním nette.ajax.js a nakonec main.js.
Chybová hláška: „Uncaught SyntaxError: Unexpected identifier“

Editoval Pepa Lakosil (13. 6. 2017 19:47)

CZechBoY
Člen | 3608
+
0
-

mas to v latte sablone? jak mas ten skript nastavenej? nemas n:syntax=off/double?

GEpic
Člen | 566
+
0
-

CZechBoY napsal(a):

mas to v latte sablone? jak mas ten skript nastavenej? nemas n:syntax=off/double?

nemá, má to určitě v main.js – musíš ty své skripty dát přímo do latte souboru, v externím js souboru o nich nette absolutně neví a nedokáže tam nahradit makro za odkaz.

Editoval GEpic (14. 6. 2017 5:59)

abc
Člen | 92
+
+2
-

Určitě to nedávej do latte.
Do latte si ulož jen odkaz někam

<span id="mujLink" class="hidden" data-href="{link ready!}"></span>

A pak si ho v tom JS souboru vytáhni:

var link = $('#mujLink').data('href');
GEpic
Člen | 566
+
0
-

A proč by to nemohl dát do latte? Vždyť je jedno jestli je to externě nebo v latte, když je kus JS kódu mimo a něco je pak v latte, zbytečně se poté bojuje s variable scope pokud není člověk zběhlý v JS a nepíše si vlastní knihovny. Kord když se používá jQuery a spousty dalších knihoven.

V jeho případě nelze využít následující. A zapsat si toto jen tak do HTML kvůli potřebě JS je trošku ošklivé.

<span id="mujLink" class="hidden" data-href="{link ready!}"></span>

Na těch autorovo několik řádků bohatě postačí latte a nebude s tím mít problémy a nemusí si to složitě předávat a linkovat malý soubor (extra request). Pokud by toho kódu bylo víc tak to samozřejmě z důvodu cachování smysl má, ale na těch 15 řádků ne.

Editoval GEpic (14. 6. 2017 14:31)

abc
Člen | 92
+
0
-

@GEpic tak vzhledem k tomu, že už JS soubor linkuje, tak by pro něj dokonce i ta moje varianta mohla být jednodušší, protože změní jen 2 řádky a nemusí celý JS přesouvat do šalbony.

A proč je to ošklivé? Všude se píše, že to je best practise. Samozřejmě nejlépe si ten href vytáhnout třeba z formuláře, kterého se to týká nebo odkazu, ale to v tom jeho příspěvku není uvedeno.