Node.js 有没有办法在车把模板中忽略车把模板?

Node.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=

我在服务器端节点应用程序中使用了Express+Handlebar,我希望将客户端模板发送到浏览器,作为我渲染的页面的一部分

index.html

<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
  • Include templates.js
  • 执行模板
    var html=handlebar.templates[“client-template1”](上下文);
  • 额外信息


    一般来说,当您的模板被编译两次(例如,当您只是服务器端)并且希望在第一次运行时忽略模板标记时,您可以简单地通过添加反斜杠告诉Handlebar忽略它们:

    {{variable1}} \{{variable2}}
    
    当编译时
    variable1
    设置为
    value1
    并且
    variable2
    未定义,您会得到:

    value1 {{variable2}}
    
    value1 value2
    
    (而不是将第二个标记替换为空字符串)

    当编译将
    variable2
    设置为
    value2
    的第二次运行时,您会得到:

    value1 {{variable2}}
    
    value1 value2
    

    这不是一个完美的解决方案(这将是一个设置车把,使其不受未定义变量的影响),但适用于我的特殊情况。

    正是我所寻找的。在处理了很多地方后,我发现这是我的东西最简单和最好的解决方案。这个。很有帮助。我发表了相关帖子以防万一: