Ответ 1
Попробуйте следующее:
alert('!{myVar}')
Это хорошая идея для JSON кодировать данные, если это больше, чем просто строка.
alert('!{JSON.stringify(myVar)}')
Я полностью потерял это; Я использую NodeJS для извлечения JSON, и мне нужно передать эту переменную на мою страницу и использовать JavaScript для использования.
app.get('/test', function(req, res) {
res.render('testPage', {
myVar: 'My Data'
});
Это мой экспресс-код (очень простой для тестирования); теперь с помощью JADE я хочу собрать эти данные, которые, как я знаю, для рендеринга на странице, просто
p= myVar
Но мне нужно собрать эти данные в JavaScript (если возможно, в файле .js), но пока просто для отображения переменной в поле "Предупреждение" я попытался
alert(#{myVar})
И многие другие, если кто-то может помочь, очень ценится
Попробуйте следующее:
alert('!{myVar}')
Это хорошая идея для JSON кодировать данные, если это больше, чем просто строка.
alert('!{JSON.stringify(myVar)}')
Как сказал Тимофей:
<script type="text/javascript>var myVar = #{JSON.stringify(myVar)};</script>
Это также можно сделать следующим образом, если вам не нравится писать HTML-код в нефритовых шаблонах:
script
var myVar = !{JSON.stringify(myVar)};
var myVar2 = !{JSON.stringify(myVar2)};
Обновление. Для Express 4 используйте script.
вместо script
, чтобы он отображался как javascript вместо html.
Ну, Javascript (и V8) имеет встроенную функцию для рендеринга JSON от объекта, а JSON, по-видимому, синтаксически совместим с Javascript.
Таким образом, самый простой способ сделать то, что вы пытаетесь сделать:
<script type="text/javascript>var myVar = #{JSON.stringify(myVar)};</script>
И да, вы можете использовать HTML в шаблоне Jade.
Я знаю, что немного опаздываю на вечеринку, но несколько месяцев назад я написал модуль (JShare) для решения этой точной проблемы. Проверьте это: https://npmjs.org/package/jshare
Вы можете использовать Now.js для этого. Он легко позволяет вам совместно использовать переменные клиент/сервер в режиме реального времени.
Проверьте это: http://www.nowjs.com/