不幸的是,我愿意使用handlebars-express将变量从服务器端传递到客户端。
在这里浏览内容一段时间后,我可能需要协助来整理内容。
检查传递的对象是否为字符串类型:是。 尝试了几次检索数据的组合,但均未成功。
下面的getDeviceID方法可以按预期工作-检查以确认它返回了所需的字符串。
authMe.js(路由器):
if (userInSystem) {
var userDeviceID = await helpers.getDeviceID(usersSheetID, scope, Username);
res.render("signinSuccessful", { dID: userDeviceID });
}
signinSuccessful.html:
<body>
<script>
var dID = '{{dID}}'; ///// ->
console.log(dID); //////// -> need elp with these two lines
</script>
<div class="container-login100"></div>
<script>signinSuccess()</script>
</body>
在app.js中,我具有以下要求:
var exphbs = require('express-handlebars');
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
即使我感觉这是处理发送的字符串变量的方法,它始终会打印'{{dID}}'。
谢谢!
答案 0 :(得分:0)
我也遇到了这样的问题,我不得不将数据库中的值传递到我的handlebars文件中的客户端脚本中,但这没有用。我所做的是将我希望在客户端脚本中保存的值保存在某些div的data- *属性中,如果您愿意,也可以隐藏该值
<div style="display:none;" data-value="{{dID}}" id="value"></div>
比起您,您可以使用javascript或jquery从脚本中检索该值 使用Javascript:
var dID = document.querySelector('#value').getAttribute('data-value');
使用JQuery:
var dID = $('#value').attr('data-value');
您可以从此链接了解有关data- *属性的更多信息 https://www.w3schools.com/tags/att_global_data.asp