【问题标题】:Client side templates and partial views and express客户端模板和部分视图和表达
【发布时间】:2011-08-02 15:38:20
【问题描述】:

我们最近有大量的客户端模板解决方案,包括:

据我所知,只有 jQuery 模板支持部分模板的概念(在本例中为 {{tmpl}})。

还有哪些其他模板引擎允许部分或嵌套模板?

我不是express 方面的专家,我不知道这些部分是如何在幕后工作的。

如何将非标准模板引擎集成到 express 中? (标准为 Jade 或 EJS)。

【问题讨论】:

  • @MPelletier 我们也有express 标签。我个人建议将express.js/expressjs 更改为express
  • 我只是通过将expressjs 合并到它最近的亲戚来消除它。我宁愿 Meta 决定 expressexpress.js,主要是因为我不想手动重新标记。我对express 有偏见,主要是因为人们会将它用于其他技术(C#、SQLServer 等)的任何“Express”版本。
  • @MPelletier 这似乎是合理的。

标签: javascript node.js partial-views templating express


【解决方案1】:

模板引擎必须提供compile 函数。

https://github.com/visionmedia/express/blob/master/lib/view.js#L367

您可以通过app.set('view engine', 'jqtpl') 定义默认模板引擎,或者让我们根据文件扩展名进行猜测。 Express 将根据需要自动加载该引擎。

https://github.com/visionmedia/express/blob/master/lib/view/view.js#L122

您可以看到一个使用降价的示例,例如:

https://github.com/visionmedia/express/blob/master/examples/markdown/app.js

【讨论】:

    【解决方案2】:

    您可以查看 Knockout.js。这是一个很棒的数据绑定/模板解决方案,可以通过观察您的数据模型动态地重新渲染屏幕上的 HTML

    http://knockoutjs.com/

    http://channel9.msdn.com/Events/MIX/MIX11/FRM08

    支持嵌套模板(以几种不同的方式)、将事件附加到模板、具有复合模板变量以及将模型对象附加到输入和输出元素。

    比内置的 jQuery 模板或其他数据绑定选项(如 Chain.js)更灵活:)

    【讨论】:

    • express是否支持knockout模板引擎?视图可以在 node.js 和浏览器上使用吗?不要误会,淘汰赛很棒,只是我需要一个用于服务器和客户端的模板引擎。
    • 我还没有将它与 Node 一起使用,但我认为它应该作为 Express 模板系统中的附加层。 Express 将处理您的基本应用程序框架、页面和 MVC 结构。然后在 Knockout 模板中构建所有客户端组件(它们只是 html 中的 JS)并将 Knockout 数据模型连接到您已经拥有的内容。希望这会有所帮助
    • 给出更技术性的答案:Knockout 遵循 MVVM 模式,除了现有的模型/控制器之外,它基本上在视图旁边插入一个层(“视图模型”),请参阅:@987654323 @
    • @dylanized 最终对象正在为禁用 JavaScript 的客户端重用服务器上的视图代码。我可以在服务器上重复使用我的客户端淘汰代码吗?
    • 这个映射插件看起来也很酷,自动将 JSON 映射到 Knockout View Model bit.ly/lporbo
    猜你喜欢
    • 2016-11-28
    • 2012-01-22
    • 2012-01-20
    • 2011-02-09
    • 2012-02-19
    • 2013-03-18
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多