将Mustache / Handlebars模板与HAML混合是一个好主意吗?

时间:2012-03-20 17:56:12

标签: javascript haml template-engine mustache handlebars.js

我想知道将Mustache或Handlebars与HAML混合在一起是否是个好主意。如果是,那将是有利有弊的。我为什么这么问?我见过brogrammers混合模板。感谢。

1 个答案:

答案 0 :(得分:3)

我正在使用HAML生成胡子模板而没有任何问题。

我的HAML看起来有点像这样:

.template.shop
  .foreground
    .header
      .header-logo
    .shop-description
      .table-frame
        %a.close-button{:href=>"#"} Close
        %table
          %tr
            %td.shop-images
            %td.shop-details
              %p.popup-headline.fix-width
                {{addr_name}}
              %p
                {{addr_street}} {{addr_number}}
                %br/
                {{addr_zip}} {{addr_city}}
              / {{#hasSchedule}}
              %p.popup-headline
                \Öffnungszeiten
              %table.shop-schedule
                / {{#sched_mo}}
                %tr
                  %td Mo:
                  %td {{sched_mo}}
                / {{/sched_mo}}

                ... Rest of Table omitted

这就像一个魅力。它在服务器上呈现为HTML,我在客户端上使用jQuery从页面中提取。然后我获取模板的HTML并使用小胡子进行渲染。

因此,您有时需要小心胡子标签出现。对于浏览器,它们只是文本,因此它们在表行之间无效。在这种情况下,将它们放在像我的例子中的HTML注释中。

您还可以在服务器上转义生成的HTML / Mustache。这在我的案例中是不可行的,因为我想要让生成的模板成为我的HTML的一部分,以便更轻松地进行样式化。