如何在Haml中构建布局模板

问题描述 投票:16回答:2

我有一个使用Haml进行布局的网页。 “ layout.haml”是一个单独的布局文件,在呈现任何实际的Haml页面时使用。

layout.haml看起来像:

-# layout.haml
!!! XML
!!!
%html
  %head
    ...
  %body
    ...
    #content= yield

这当然已经在文档的<body>中,因此无法直接在标头中进行操作。例如,通过<title>更改@title。一个更大的问题是,每个页面特定的JavaScript都需要加载到主体中。此外,layout.haml已经包含JavaScript,因此jQuery通常被实例化多次。

是否有任何关于更好的模板结构的建议?

ruby haml
2个回答
44
投票

此解决方案仅适用于Ruby on Rails:

您可以使用yield(:location)content_for(:location)方法。 “ Using the content_for Method”具有更多信息。

layout.haml:

content_for

view.haml:

!!!
%html
  %head
    %title= yield(:title)
    = yield(:head)
  %body
    = yield

6
投票

我使用局部变量:

- content_for(:title, 'My title')
- content_for(:head) do
  = javascript_include_tag :foo

%h1 My view!
© www.soinside.com 2019 - 2024. All rights reserved.