node.js - 使用 HBS strip (消耗?)Handlebars 客户端模板进行快速 View 渲染

标签 node.js express

使用 Express 和 Don Park 的 HBS 作为 View 引擎,目的是为客户端和服务器代码使用相同的模板样式。但是,我遇到了一些障碍。

有了此处显示的 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 渲染过程似乎已经消耗了打算在浏览器中使用的模板 block 。据我所知, View 渲染器只是将整个 file.hbs 作为一个字符串模板来渲染,而不是将脚本 block 与服务器 View 区分开来。

对此有什么想法/解决方法吗?

最佳答案

我以同样的方式使用 Handlebars 并遇到了同样的问题。

我通过存储这部分解决了这个问题:

<script id="firstTemplate" type="text/x-handlebars-template">
  <ul>
    {{#lines}}
      <li>{{name}}</li>
    {{/lines}}
  </ul>
</script>

在一个单独的静态文件中,然后在页面呈现后通过 ajax 加载它。这样我的客户端模板就不会被 Express 错误地呈现。

如果有一种方法可以添加一个标签让 Express 知道忽略这样的 block 并将它们留给客户端,那就太好了。

关于node.js - 使用 HBS strip (消耗?)Handlebars 客户端模板进行快速 View 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213537/

相关文章:

javascript - 当应用程序在集群模式下运行时,有没有办法调试 pm2 中的工作进程

node.js - MongoDB 类型错误 : Cannot read property 'result' of undefined

javascript - 难以在 Node-Inspector 中设置断点

node.js - Socket.io、https 和 Express 连续连接/断开循环

javascript - 在expressJS应用程序中,是否可以在脚本执行时实时收集写入控制台的数据?

javascript - 来自 Jade 模板的 Handlebars 条件检查属性

node.js - 使用 webpack 构建 (React) 同构 web 应用程序的服务器部分,包括 CSS 样式加载器

node.js - 如何使用 knexjs 更新 json 列中的对象键值?

jquery - csurf AJAX 调用 - 无效的 CSRF token

javascript - 在 Express 中显示每个请求的日志时间?