我有一个 node express 应用程序,我试图在呈现我的 index.hbs
文件时传递一个变量,如下所示:
<!DOCTYPE html>
<html>
<body>
Hello.
<a href="/auth/facebook">Login with Facebook</a>
{{req}} <!-- this works fine(ish) -->
<script>
var request = {{req}}; // This throws an error
console.log(request);
</script>
</body>
</html>
{{req}}
模板变量按预期输出为 [object Object]
,但是当尝试通过 javascript 传递它时,我得到 控制台中抛出意外的标识符
。我尝试修改为使用三大括号而不是双大括号,但这似乎没有什么区别。
使用 javascript 设置模板变量的正确方法是什么?
最佳答案
这是因为您的模板引擎仅将 {{req}} 替换为字符串。
如果你想在你的 javascript 标签中使用 {{req}}。使用 JSON.stringify(req)
将模板引擎作为参数传递,并在您的 javascript 标记中使用三重“triple-stash” {{{req}}}
来解析字符串转化为对象
关于 triple-stash 可以找到文档 http://handlebarsjs.com/在 HTML 转义部分
希望对你有帮助
编辑:
在这里找到类似的答案 Passing an object to client in node/express + ejs?
关于javascript - Node.js 和 express + hbs - 将变量传递给模板时意外的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48606755/