2017-01-31 24 views
2

我正在使用帕格,我想將一個變量傳遞給前端以獲得信息,但是當我嘗試這樣做時,它會像文本一樣傳遞。如何從帕格傳遞對象到前端javascript

這就是我的做法。

控制器代碼:

res.render('view/edit', { 
    title: 'Title', 
    sub:true, 
    data: variableObject 
}); 

這是在渲染視圖代碼:

script(type='text/javascript'). 
    var x = "#{data}" 
    console.log(x); 

這是日誌

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] 

我不能訪問的結果對象,因爲是文本,有沒有辦法像對象一樣傳遞對象?

回答

1

在這種情況下,我用這個:

var x = "#{ JSON.stringify(y) }" 
    console.log(JSON.parse(x.replace(/"/g,'"'))); 

我不確定這是否是最好的做法。

+1

在dNitro的回答中,使用'!{JSON.stringify(y)}'消除了轉義問題。 – Matt

+0

這真的是很好的答案 –

2

首先使用JSON.stringify字符串化的對象:

res.render('view/edit', { 
    title: 'Title', 
    sub: true, 
    data: JSON.stringify(variableObject) 
}); 

然後使用String Interpolation, Unescaped!{data}

script(type='text/javascript'). 
    var x = !{data} 
    console.log(x); 


或者只是做這一切有一次,在你的模板:

script(type='text/javascript'). 
    var x = !{JSON.stringify(data)} 
    console.log(x); 

(榮譽@馬特,感謝)

+0

如果字符串中包含''這會產生問題,因爲瀏覽器會認爲它是開頭'

  • 11. 從Javascript傳遞一個對象到C++
  • 12. 如何將數據從前端jQuery傳遞到後端node.js
  • 13. 將parag從帕格傳遞給JSX
  • 14. 如何使用Rhino將對象從Java傳遞到JavaScript
  • 15. 如何從JavaScript傳遞對象數組到PHP
  • 16. 如何使用Emscripten將對象從Javascript傳遞到C++
  • 17. 如何從Javascript傳遞對象和/或多維數組到PHP
  • 18. 如何通過URL傳遞JavaScript對象
  • 19. 傳遞消息到前端
  • 20. 傳遞當前對象C++
  • 21. 從javascript傳遞數組到後端bean
  • 22. 如何從python django後端到AJAX的前端描述對象?
  • 23. JavaScript對象 - 轉換成JSON格式,並傳遞到服務器端功能
  • 24. JavaScript/Nodejs:ajax POST請求不傳遞對象到後端
  • 25. 從JavaScript中的JavaScript函數傳遞JsonResult對象到控制器
  • 26. 將字符串傳遞到對象javascript
  • 27. JavaScript的傳遞對象到函數
  • 28. 窗口傳遞到對象通過javascript
  • 29. 帕格 - 從一個JSON對象
  • 30. 將對象從Java(BlazeDs)服務器傳遞到前端Flex應用程序