从另一个HAML文件加载HAML partial

时间:2015-01-26 13:43:57

标签: ruby sinatra haml

在HAML中是否可以在haml之类的模板中使用haml?

示例:

  • menu.haml
  • layout.haml
  • page1.haml
例如

page1:

haml: menu.haml

%p 
  content

如您所知,从layout.haml获取布局(如横幅等)。 我想在haml文件中创建一个单独的菜单部分。这甚至可能吗?

额外信息:

  • 使用sinatra webframework

4 个答案:

答案 0 :(得分:3)

是。假设menu.haml位于您的views目录中,并假设它不需要本地人,那就像这样简单:

= haml :menu

答案 1 :(得分:1)

不确定

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

self是视图文件中的当前上下文

答案 2 :(得分:1)

是的,您甚至可以像这样呈现haml部分:

  

= render:partial => “栏”

答案 3 :(得分:1)

您可以在现有模板中添加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是Rails中部分内部app/view文件夹的路径,没有文件扩展名,您可以添加选项,例如:layout:partial 。关于Sinatra部分工作路径的方式相同,只需更改视图路径即可。