použití {$basePath} v javascriptu?

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

Ahoj,
v javascriptu řeším zobrazování obrázků při přepnutí radiobuttonu a to zhruba takhle

$(function() {
 $('.radiobutton').click(function() {
var type = this.value;
  $('#imagetype').attr('src',function() {
    return "/images/modely/"+type+"/"+type+"-moznosti-small.jpg";
  });
  $('#imagetyp').attr('href',function() {
    return "/images/modely/"+type+"/"+type+"-moznosti-moznosti-big.jpg";
  });
 });
});

ale nechce se mi adresovat absolutně (což asi každý chápe), tudíž nevíte někdo jak použít {$basePath} v javascriptu ?

Díky za rady ;)

dobby
Člen | 10
+
0
-

kasparek, ten JavaScript mas v latte sablone, alebo v externom .js subore?
Ak je v latte, staci napisat:

<script>
// ...
return {$basePath}+"/images/modely/"+type+"/"+type+"-moznosti-small.jpg";
// ...
</script>

Editoval dobby (24. 12. 2013 22:45)

Mesiah
Člen | 240
+
0
-

a pokud mas v externím js souboru, tak použíj malý trik a to:
v layoutu do objektu window si vytvoř vlastní objekt, nebo do objektu nette, si přidej property basepath. if (window.nette) window.nette.basepath = {$basePath}; psáno z hlavy, možná tam bude nějaká krpa

kasparek
Člen | 43
+
0
-

Jop měl jsem dev verzi teď už mi to funguje

Díky za rady ;)

Majkl578
Moderator | 1364
+
0
-

@Mesiah: Špinit tím window mi nepřijde v pořádku. Osobně používám buď data atributy na <body> nebo v hlavičce script tag, v němž je JSON konfiguračních hodnot, který v JS zparsuji.

Mesiah
Člen | 240
+
0
-

Majkl578 napsal(a):

@Mesiah: Špinit tím window mi nepřijde v pořádku. Osobně používám buď data atributy na <body> nebo v hlavičce script tag, v němž je JSON konfiguračních hodnot, který v JS zparsuji.

Souhlasím, na tento druh dat jdou data attributes krásně využít.
Na druhou stranu mít v hlavičce konfigurační json zase moc nevoní mě a preferoval bych vlastní objekt, přeci jenom mít vlastní namespace mi zaručí určitou míru konzistence a i případné abstrakce – přinde mi to více future friendly přístup (z hlediska budoucího rozšiřování aplikace, ne trendů vývoje).
Ale ve výsledku je to v podstatě fuk jestli json budeš parsovat ve vlastním lexikálním uzávěru, který má nadřízené prostředí window, nebo přímo ve window…

Editoval Mesiah (25. 12. 2013 21:24)

Majkl578
Moderator | 1364
+
0
-

Mesiah napsal(a):

Na druhou stranu mít v hlavičce konfigurační json zase moc nevoní mě a preferoval bych vlastní objekt, přeci jenom mít vlastní namespace mi zaručí určitou míru konzistence a i případné abstrakce

Ten JSON je tam v plain podobě, kdo a kde ho parsuje je z tohoto pohledu irelevantní. Např.:

<script type="application/json" id="config">
{
    "foo": 123
}
</script>