Node.js 有没有办法在车把模板中忽略车把模板?
我在服务器端节点应用程序中使用了Express+Handlebar,我希望将客户端模板发送到浏览器,作为我渲染的页面的一部分 index.htmlNode.js 有没有办法在车把模板中忽略车把模板?,node.js,handlebars.js,Node.js,Handlebars.js,我在服务器端节点应用程序中使用了Express+Handlebar,我希望将客户端模板发送到浏览器,作为我渲染的页面的一部分 index.html <html> <head> <title>{{title}}</title> </head> <body> <div> {{stuff}} </div> <script id="more-template" type=
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<div>
{{stuff}}
</div>
<script id="more-template" type="text/x-handlebars-template">
<div>{{more}}</div>
</script>
</body>
{{title}}
{{stuff}}
{{more}}
不幸的是,handlebar试图在#more template脚本块中渲染内容。(它只是删除了{{more}}
,因为它在服务器模板的上下文中没有定义
有没有办法让它忽略脚本标记中的内容?(以便客户端模板可以使用它)
我已经看到了这个问题:,我宁愿只使用1个模板引擎。所以我没有找到一种容易忽略客户端模板的方法,但普遍的共识是预编译客户端模板
npm安装把手-g
handlebar客户端-template1.handlebar-f templates.js
var html=handlebar.templates[“client-template1”](上下文);
一般来说,当您的模板被编译两次(例如,当您只是服务器端)并且希望在第一次运行时忽略模板标记时,您可以简单地通过添加反斜杠告诉Handlebar忽略它们:
{{variable1}} \{{variable2}}
当编译时variable1
设置为value1
并且variable2
未定义,您会得到:
value1 {{variable2}}
value1 value2
(而不是将第二个标记替换为空字符串)
当编译将variable2
设置为value2
的第二次运行时,您会得到:
value1 {{variable2}}
value1 value2
这不是一个完美的解决方案(这将是一个设置车把,使其不受未定义变量的影响),但适用于我的特殊情况。正是我所寻找的。在处理了很多地方后,我发现这是我的东西最简单和最好的解决方案。这个。很有帮助。我发表了相关帖子以防万一: