Javascript 将胡子/把手模板与HAML混合使用是一个好主意吗?

Javascript 将胡子/把手模板与HAML混合使用是一个好主意吗?,javascript,haml,template-engine,mustache,handlebars.js,Javascript,Haml,Template Engine,Mustache,Handlebars.js,我想知道,如果这是一个好主意,混合胡子或把手模板与哈姆。如果是的话,好处和坏处是什么。我为什么问这个?我见过brogrammers混合模板。谢谢。我正在使用HAML生成胡须模板,没有任何问题 我的HAML看起来有点像这样: .template.shop .foreground .header .header-logo .shop-description .table-frame %a.close-button{:href=>"#"

我想知道,如果这是一个好主意,混合胡子或把手模板与哈姆。如果是的话,好处和坏处是什么。我为什么问这个?我见过brogrammers混合模板。谢谢。

我正在使用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并使用mustache呈现它

因此,您有时需要小心胡须标签出现的位置。对于浏览器来说,它们只是文本,因此在表行之间无效。在本例中,将它们放入HTML注释中,如我的示例中所示


您还可以在服务器上转义生成的HTML/小胡子。在我的例子中,这是不可行的,因为我希望将生成的模板部分放在HTML中,以便于样式设置。

我认为,如果将生成的代码放在一个脚本标记中,其类型浏览器无法识别,例如type=“text/x-handlebars-template”,浏览器将不会弄乱“无效”HTML(例如,位于表行之间的标记),这样您就不必担心将它们放入HTML注释中,这也会起作用渲染成一个字符串并将该字符串放入Javascript中。在我的例子中,我明确希望/需要它成为DOM的一部分,以便于开发。实际上我认为这不会起作用,因为HAML在不生成无效HTML方面很聪明。因此,如果你将它们放在TRs周围,它会拉出文本字符串并将它们放在前面在我找到这篇文章之前,我不知道评论被破解了,这篇文章完美无瑕,谢谢你,简。