Je suis en train de construire un tableau avec quelques coordonnées de test à utiliser avec OpenLayers Overlays.ne peut pas pousser la variable EJS dans le tableau dans le scripttag html?
Voici le code:
var parada = [];
for(var i = 0; i < <%- coords.length%>; i++){ //First loop to fill the array
var arr = [<%- coords[i].lon %>, <%- coords[i].lat %>]; //THIS IS THE ERROR LINE! ... says the console...
parada.push(arr);
}
var overlays = [];
for (i = 0; i < parada.lenght; i++) { //Second loop to build the overlays
overlays.push(new ol.Overlay({
position: ol.proj.fromLonLat([parada[i][0], parada[i][1]]), //With the data of the array above
positioning: 'center-center',
element: document.getElementById('parada' + i),
stopEvent: false
}));
}
for (i = 0; i<overlays.length; i++){ // Last loop to assign the overlays.
map.addOverlay(overlays[i]);
}
IMPORTANT: dans mon fichier app.js, coords est défini comme un tableau d'objets (que je trouve ({}) dans MongoDB).
Je suis vraiment coincé ici s'il vous plaît aider! Merci! : DDD
Merci! il semble fonctionner :) J'ai mis votre code dans le fichier app.js comme vous l'avez dit. Encore une chose: comment puis-je appeler la variable maintenant dans l'EJS? <%= %>? <% = parada [0]%> ou <% = parada [0] .lon%> les deux ne semblent pas fonctionner ... Merci beaucoup pour votre aide! Vous êtes génial: D –
@AlanSchwarz La variable 'parada' existe uniquement dans le JS côté client, pas dans le JS côté serveur. Le code à l'intérieur du '<% %>' est complètement séparé du code à l'extérieur, c'est juste une coïncidence que les deux utilisent JavaScript. Du point de vue d'EJS, seul le code à l'intérieur du '<% %>' est interprété comme du code, les bits à l'extérieur ne sont que du texte arbitraire à jeter. Le texte généré par le modèle est ensuite envoyé au navigateur (vous pouvez le voir dans les outils de développement) et le navigateur exécute ensuite le code généré. Les deux sont des processus totalement distincts. – skirtle