【问题标题】:How to structure a layout template in Haml如何在 Haml 中构建布局模板
【发布时间】:2011-05-24 05:43:22
【问题描述】:

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

layout.haml 看起来像:

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

这当然已经在文档的<body> 中,因此无法直接操作标题中的内容。例如 <title> 通过 @title 更改。一个更大的问题是每个特定于页面的 JavaScript 都需要加载到正文中。而且layout.haml已经包含了JavaScript,所以jQuery通常会被实例化多次。

对更好的模板结构有什么建议吗?

【问题讨论】:

标签: ruby haml


【解决方案1】:

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

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

layout.haml:

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

view.haml:

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

%h1 My view!

【讨论】:

  • 请注意,这是特定于 Rails 的解决方案。
【解决方案2】:

我使用部分:

!!!
%html
  = partial('trst_sys/shared/html-head')

  %body{:id => "srv",:'data-lang' => current_lang}
  #main.wrap
    %header#header
      = partial('trst_sys/shared/header')
    %nav#menu
      = partial('trst_sys/shared/menu')
    %section#content
      %article#xhr_content
        = yield
      %article#xhr_msg.hidden
    %section#sidebar
      = partial('trst_sys/shared/sidebar')
    %section#main_footer.wrap
  %footer#footer.wrap
    = partial('trst_sys/shared/footer')

【讨论】:

  • 谢谢,我也一定会尽快查看的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2018-09-22
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多