2015-01-26 2 views
2

Возможно ли в HAML использовать haml в haml-подобных шаблонах?Загрузить HAML частично из другого файла HAML

пример:

  • menu.haml
  • layout.haml
  • page1.haml

стр.1, например:

haml: menu.haml 

%p 
    content 

, как вы знаете, чтобы получить наш макет из layout.haml (как баннер и т. д.). Я хочу сделать отдельную часть меню в файле haml. Возможно ли это?

дополнительная информация:

  • используя Синатра webframework

ответ

3

Да. Предполагая, что menu.haml в расположенном в директории Views, и предполагая, что он не принимает никаких местных жителей, это так просто, как это:

= haml :menu 
1

Конечно

= Haml::Engine.new(menu.haml).render(self) 

Где self является текущим контекстом в вашем просмотре файлах

1

Да, вы даже можете сделать частичные части haml следующим образом:

= render: partial => "s idebar»

0

Вы можете добавить partials как встроенные haml внутри существующего шаблона:

Например, у вас есть вид файл под названием view.html.haml:

%h2 This is the first view 
%h4 the following line 'inserts' an external code inside the view 
=render 'partial' 
%h4 this text will appear next of partial 

конец парциальное код partial.html.haml:

%p 
    %span This is the external code 

так что окончательный вид, когда он скомпилирован будет:

%h2 This is the first view 
%h4 the following line 'inserts' an external code inside the view 
%p 
    %span This is the external code 
%h4 this text will appear next of partial 

Текст внутри цитирует следующий render у путь к частичному внутри app/view папки в Rails без расширения файла, и вы можете добавить опции, такие как :layout или :partial. О Sinatra путь к частичным работает так же, просто измените путь к представлениям.

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