2012-03-20 2 views

ответ

3

Я создаю шаблоны усов с HAML без проблем.

My 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/Усы на сервере. Это было невозможно в моем случае, потому что я хотел, чтобы создать сгенерированную часть шаблона моего HTML для упрощения стилизации.

+0

Я думаю, что если вы поместили сгенерированный код в тег скрипта с типом, который браузер не может распознать, например type = "text/x-handlebars-template", браузер не будет испортить «неверный» HTML (теги, которые находятся между строк таблицы, например), поэтому вам не придется беспокоиться о том, чтобы помещать их в комментарии HTML. – tothemario

+0

Да, это также сработает. Вы также можете (на сервере) визуализировать в строку и помещать эту строку в Javascript где-нибудь. В моем случае я явно хотел/нуждался в этом, чтобы быть частью DOM для более легкой разработки. – Jan

+0

На самом деле я не думаю, что это сработает, потому что HAML умный, не создавая недействительный HTML. Поэтому, если вы помещаете их вокруг TRs, например, он вытаскивает текстовые строки и помещает их перед таблицей. Я не знал про комментарий, пока я не нашел этот пост, и это работает безупречно, так что спасибо Jan. – gtd

Смежные вопросы