Node.js 使用HBS条带(消耗?)把手客户端模板进行快速视图渲染
使用Express和Don Park的HBS作为视图引擎,目的是对客户端和服务器代码使用相同的模板样式。然而,我遇到了一点困难 使用此处显示的index.hbsNode.js 使用HBS条带(消耗?)把手客户端模板进行快速视图渲染,node.js,express,Node.js,Express,使用Express和Don Park的HBS作为视图引擎,目的是对客户端和服务器代码使用相同的模板样式。然而,我遇到了一点困难 使用此处显示的index.hbs <h1>{{title}}</h1> <p>Welcome to {{title}}</p> <div id="place"></div> <script id="firstTemplate" type="text/x-handlebars-templat
<h1>{{title}}</h1>
<p>Welcome to {{title}}</p>
<div id="place"></div>
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
{{#lines}}
<li>{{name}}</li>
{{/lines}}
</ul>
</script>
{{title}
欢迎来到{{title}
{{#行}
- {{name}}
{{/行}
以下是渲染到浏览器的内容:
<h1>Express</h1>
<p>Welcome to Express</p>
<div id="place"></div>
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
</ul>
</script>
Express
欢迎收看快报
“快速视图”渲染过程似乎已使用了要在浏览器中使用的模板块。据我所知,视图渲染器只是将整个file.hbs作为一个字符串tempate进行渲染,而不区分脚本块和服务器视图
有什么想法/解决方法吗?我用同样的方法使用车把,遇到了同样的问题 我通过存储以下部件解决了此问题:
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
{{#lines}}
<li>{{name}}</li>
{{/lines}}
</ul>
</script>
{{#行}
- {{name}}
{{/行}
在一个单独的静态文件中,然后在页面呈现后通过ajax加载它。这样,我的客户端模板就不会被Express错误地呈现
如果有一种方法可以添加一个标签,让Express知道忽略这样的块,并将它们留给客户端,那就太好了。如果把手与胡子真正兼容,那么这应该可以: 首先更改分隔符,将其放在模板顶部(任何模板占位符之前)
更多信息请参见此处的胡须手册底部-对于车把,uou可以使用反斜杠来避开双大括号,如下所示:
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
\{{#lines}}
<li>\{{name}}</li>
\{{/lines}}
</ul>
</script>
\{{#行}
- \{{name}}
\{{/行}
您可以尝试在脚本标记前面更改分隔符{{{=}}
是的,我正在寻找如何做到这一点!无法使用手柄找到它,因此我修改了ICanHaz的副本,以使用更改的分隔符进行客户端模板制作。你能分享一个代码示例来演示如何将这个分隔符更改放入文件中吗?不确定这是否回答了这个问题,因为OP在任何地方都没有提到胡子。。此外,此解决方案对于纯车把解决方案也会引发错误
<% foo %>
{{ bar }}
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
\{{#lines}}
<li>\{{name}}</li>
\{{/lines}}
</ul>
</script>