Sto lavorando a un'app NodeJS (è un gioco). In questo caso, ho impostato un codice in modo che quando una persona visita l'indice e scelga una stanza, venga reindirizzato nella stanza appropriata.Accesso alla variabile EJS nella logica Javascript
In questo momento è stato fatto in questo modo, con espresso v2.5.8:
server.get("/room/:name/:roomId, function (req, res) {
game = ~databaseLookup~
res.render("board", { gameState : game.gameState });
}
corso in board.ejs posso accedere alla modalità gamestate con codice come questo:
<% if (gameState) { %>
<h2>I have a game state!</h2>
<% } %>
C'è un modo per me di importare questo nella mia logica JavaScript? Voglio essere in grado di fare qualcosa come var gs = ~ import ejs gameState ~
e quindi essere in grado di fare quello che voglio con esso - accedere alle sue variabili, stamparlo per console per la verifica. Alla fine, ciò che voglio fare con questo GameState è di visualizzare correttamente la scheda, e per farlo dovrò fare cose come accedere alle posizioni dei pezzi e quindi visualizzarli correttamente sullo schermo.
Grazie!
ho deciso di roll con la chiamata AJAX una volta che la pagina è già caricato. Il problema con il tuo codice sopra è che <% = gameState%> valuta [oggetto oggetto] che non è affatto quello che voglio. Grazie! –
Io uso <% include script%> nella parte inferiore di tutte le mie pagine che contiene alcuni elementi standard, come oggetto richiesta, oggetto utente, errori di modulo. – chovy
se il codice valuta [oggetto oggetto], suggerisco di usare 'JSON.stringify (game.gameState)' lato server. Quindi l'oggetto stringa verrà inserito nel tag dello script. Poiché il rendering di ejs evita di solito caratteri speciali per HTML, ti consigliamo di utilizzare 'var clientGameState = <% - gameState%>' all'interno del tag script (invece di '<% =') Se hai bisogno del gameState per il rendering anche la pagina, puoi fare un JSON.parse() per passarci sopra ecc. – Matthias