【问题标题】:Embedding Handlebars templates in Backbone views, or possibly vice versa在 Backbone 视图中嵌入 Handlebars 模板,反之亦然
【发布时间】:2023-03-27 21:08:01
【问题描述】:

我正在开发一个 Grails 应用程序,该应用程序带有使用 Handlebars 模板的客户端 Backbone 视图。现在.js 文件中的视图和模板位于.html 文件中。 .js 文件被汇总到一个应用程序包文件中,可以压缩、缓存等。.html 文件使用 Include 插件进行内联,并直接显示在生成的 HTML 源代码中。

这有几个烦恼。

  1. 为了便于开发,我希望将这些文件放入一个文件中,这样您就不必在每次想要处理视图时都查找并打开两个文件,也不会冒险加载.js,但不包括 .html,反之亦然。
  2. 我希望模板本身具有压缩、缓存等优势,而不是每次生成 HTML 时都重复。

我可以看到一些方法来做 (1) - 例如,将 .js 包装在 <script> 标记中并将其直接嵌入到 .html 中 - 但它们失去了 (2) 的好处。我可以看到一些方法来做 (2) - 例如,使用 Handlebars-Resources 插件预编译 Handlebars 模板,并将它们视为任何其他 Javascript - 但这不会让您达到 (1)。

我想理想情况下我会将 HTML 嵌入到 .js 文件中。但我不想要内联字符串;我希望我的 IDE 清楚地知道 HTML 是 HTML,并具有所需的所有完成和错误检查优势。有没有一种干净的方法可以做到这一点?还是我没有想到的另一种选择?

【问题讨论】:

    标签: grails backbone.js handlebars.js


    【解决方案1】:
    1. 从代码可维护性的角度来看,将您的视图代码嵌入<script> 标签将是一场噩梦,我怀疑它甚至会起作用。在代码文件中嵌入 HTML 更加可怕。即使您可以使用 grep 和胶带将一些设置组合在一起,我很确定没有 IDE 可以理解它并为您提供所需的语法高亮显示。

      只需将您的 IDE 窗口/选项卡并排排列,不要想太多。

    2. 使用把手precompilation 支持。太好了。

    【讨论】:

    • “只需将你的 IDE 窗口/选项卡并排排列,不要想太多”听起来不错,但是当你有一个拥有超过 100 个视图的大型应用程序时,以及多达 6 个它们同时打开(这个应用程序还不是这种情况,但它打算替换的 Tapestry 应用程序肯定是这种情况),这很重要。
    • @DavidMoles,祝你任务顺利。我不认为有什么好方法可以实现你想要的,但希望它能成功。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2012-09-08
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多