使用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-template">
<ul>
{{#lines}}
<li>{{name}}</li>
{{/lines}}
</ul>
</script>
继承人向浏览器呈现的内容:
<h1>Express</h1>
<p>Welcome to Express</p>
<div id="place"></div>
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
</ul>
</script>
Express View渲染过程似乎消耗了用于浏览器的模板块.据我所知,视图渲染器只是将整个file.hbs作为字符串模板进行渲染,而不是将脚本块与服务器视图区分开来.
有什么想法/解决方法吗?
最佳答案 我以相同的方式使用Handlebars并遇到了同样的问题.
我通过存储这部分来解决它:
<script id="firstTemplate" type="text/x-handlebars-template">
<ul>
{{#lines}}
<li>{{name}}</li>
{{/lines}}
</ul>
</script>
在一个单独的静态文件中,然后在页面呈现后通过ajax加载它.这样,我的客户端模板不会被Express错误地呈现.
如果有一种方法可以添加一个标记让Express知道忽略这样的块并将它们留给客户端,那就太好了.