Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

1

26.11.2017, 19:32

Auf Template Variablen im Client Javascript zugreifen

Hi,
ein kleiner Beispielcode

Das Backend ist NodeJs, rendern tue ich das Template so:

Quellcode

1
2
3
4
5
app.get('main/:id', function (req, res) {
    res.render('main', {
      myValue: Number(req.params.id) // Die Parameter Id als Template Variable dem Template mitgeben
     });
  });


Am Client habe ich eine Javascript Datei, dort steht folgendes drin:

Quellcode

1
2
3
4
5
function initValue(data){ // myValue setzen
  myValue = data;
}

var myValue;


Und da ich myValue ja schon vom Server mitgebe, muss ich mir die Variable ja nicht umständlich nochmal vom Server anfragen, sondern kann sie ja vom Template setzen lassen (ich nutze Handlebars), das Template sieht hat dann oben folgenden Code stehen (Jquery wird genutzt):

Quellcode

1
2
3
4
5
6
<script>
$(document).ready(function() {
var data = {{myValue}};
initValue(data);
});
</script>


mit {{myValue}} kann ich im Template auf Variablen zugreifen. Innerhalb der Script Tags scheint das aber nicht zu klappen. Wie kann ich die Template Variable so als Parameter bei

Quellcode

1
initValue(data); // hier {{myValue}} einsetzen


übergeben, dass es passt bzw. ich nicht die Fehlermeldung "Uncaught SyntaxError: Unexpected identifier" erhalte?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

26.11.2017, 21:07

Wenn es nicht innerhalb von Script-Tags geht, dann pack es als Attribut in irgendein Element à la data-myvalue={{myValue}} und lies es im JavaScript. Wahrscheinlich brauchst du noch Anführungszeichen um den Wert - ich weiß nicht, wie das Template-System funktioniert.

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

3

26.11.2017, 21:11

Hm ja, ich hatte daran gedacht, mir irgendein Element zu erzeugen, den Wert zuzuweisen und das Element aus dem DOM zu entfernen. Aber das wäre mein Notfallplan.

Ich dachte es gibt sowas möglicherweise auch in PHP, da gibt es hier ja viele erfahrene Leute ?(

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

26.11.2017, 21:12

Übrigens, es scheint doch in Script-Tags zu gehen. Google hätte hier geholfen: https://www.google.de/search?q=handlebar…e+in+javascript

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

5

27.11.2017, 06:37

Hm anscheinend war ich wohl zu blöd, Google richtig zu nutzen ;) Danke.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

27.11.2017, 14:04

„Agooglie“ scheint zur Volkskrankheit geworden zu sein ;)

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

7

27.11.2017, 16:03

joa, es hätte so einfach sein können :D

Werbeanzeige