我正在研究NodeJS應用程序(這是一款遊戲)。在這種情況下,我設置了一些代碼,當一個人訪問索引並選擇房間時,他會被重定向到合適的房間。在Javascript邏輯中訪問EJS變量
現在它正在做這樣的,用快遞v2.5.8:
server.get("/room/:name/:roomId, function (req, res) {
game = ~databaseLookup~
res.render("board", { gameState : game.gameState });
}
結束在board.ejs我可以用代碼訪問遊戲狀態的方式是這樣的:
<% if (gameState) { %>
<h2>I have a game state!</h2>
<% } %>
有一種讓我將它導入到我的JavaScript邏輯中的方法?我希望能夠做到像 var gs =〜import ejs gameState〜
然後能夠做任何我想要的東西 - 訪問它的變量,打印出來以便控制檯驗證。最終,我想用這個gameState做的事情就是正確顯示板子,爲此我需要做一些事情,比如訪問棋子的位置,然後在屏幕上正確顯示它們。
謝謝!
我決定用AJAX調用滾一旦頁面已經加載。上面的代碼的問題是<%= gameState%>的計算結果爲[對象對象],這根本不是我想要的。謝謝! –
我在我的所有頁面的底部使用<%include script%>,這些頁面有一些標準的東西傳遞給它,比如請求對象,用戶對象,表單錯誤。 – chovy
如果代碼評估爲[object Object],我建議使用'JSON.stringify(game.gameState)'服務器端。 然後將字符串化的對象放入腳本標記中。由於ejs渲染通常會爲HTML轉義特殊字符,因此您需要在腳本標記中使用'var clientGameState = <% - gameState%>' (而不是'<%=') 如果您需要gameState進行渲染你可以做一個JSON.parse()來遍歷它。 – Matthias