如何将对象传递给.handlebar模板并在javascript代码块中使用它?
server.js:如何将对象传递给.handlebar模板并在javascript代码块中使用它?,javascript,node.js,handlebars.js,express-handlebars,Javascript,Node.js,Handlebars.js,Express Handlebars,server.js: app.get('/home', function (req, res) { data['one'] = "first"; data['two'] = "secound"; res.render('home', { data }); }); home.Handlebar: <script type="text/javascript"> var data
app.get('/home', function (req, res) {
data['one'] = "first";
data['two'] = "secound";
res.render('home', { data });
});
home.Handlebar:
<script type="text/javascript">
var data = { {{{data}}} };
console.log(data.one);
</script>
var data={{{{{data}}};
console.log(data.one);
浏览器控制台错误:计算属性名称中的未捕获语法错误:缺少]
如何在脚本代码块中传递对象以在.handlebar模板中使用它?我认为有几件事需要检查,以便找到解决方案 首先,我们必须理解三胡子标签在车把中的含义。默认情况下,车把将显示其输出。这是预防疾病的最佳做法。这意味着通过输入
{data:“你好,世界!”}
,车把模板{{data}}
将输出:
<p>Hello, World!</p>
在某些情况下,我们不希望Handlebar对其输出进行HTML转义,为此Handlebar提供了,它将输出未转义的HTML。对于上述相同的输入和模板,输出为:
<p>Hello, World!</p>
我们的模板变成:
<script type="text/javascript">
var data = {{{ data }}};
console.log(data.one);
</script>
var data={{{data}}};
console.log(data.one);
您仍然必须对输出进行html转义,即使
标记中的规则略有不同
<script type="text/javascript">
var data = {{{ data }}};
console.log(data.one);
</script>