Ich bin irgendwie neu bei Express/Jade, also entschuldigt, wenn das eine dumme Frage ist.Problem Zugriff auf JSON-Daten in einer Javascript-Funktion innerhalb einer Express/Jade-Vorlage
Ich übergebe JSON-Daten in einer Jade-Vorlage, aber obwohl die Daten definitiv da sind und woanders auf der Seite verwendbar sind, kann ich nicht scheinen, in einer Javascript-Funktion auf derselben Seite darauf zuzugreifen.
Der betreffende Code sieht wie folgt aus:
script.
function populateData(value){
console.log("Value = " + value);
for(i = 0;i <= 3;i++){
console.log("i = " + i);
if(value==i){
console.log("school = " + mydata.sclist[i].sName);
$('#input_sid').val(mydata.sclist[i].sID);
$('#input_spc').val(mydata.sclist[i].sPostcode);
}
}
}
form#form_add_booking(name="addbooking",method="post",action="/addbooking")
table.formtable
tr
td
span
b School Name
td
select#input_sname(name="sname" onChange="populateData(this.value)")
option.
====== select ======
each school, i in mydata.sclist
option(value=i).
#{school.sName}
im obigen Code So wird die SELECT-Liste korrekt aus der JSON mit Schulnamen gefüllt, aber, wenn das onChange Attribut die Javascript-Funktion ausgelöst, I bekomme ein 'Uncaught ReferenceError' das 'mydata' nicht definiert ist.
Was fehlt mir bitte?
Ich denke, Sie könnten zwischen serverseitigem und clientseitigem JavaScript durcheinander geraten. – gcampbell
Ich wäre nicht überrascht, aber die Daten scheinen für den Client verfügbar zu sein, da mydata.sclist in jeder Schleife verwendet wird, um die Auswahlliste zu füllen. Kann ich mit mydata.sclist [i] nicht auf einzelne Elemente zugreifen? – Drum
Die 'each'-Schleife ist serverseitig, alles in' script.' ist clientseitig. – gcampbell