ruby - 如何在 Haml 中构建布局模板

标签 ruby haml

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

layout.haml 看起来像这样:

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

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

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

最佳答案

此解决方案仅适用于 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!

关于ruby - 如何在 Haml 中构建布局模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421842/

相关文章:

ruby - 如何注入(inject)辛特拉/哈姆?

html - HAML 和 Ruby 循环以及 UL 不工作

html - 将链接添加到 haml 模板中

ruby-on-rails - 在 Rails API 应用程序中存储 session

javascript - 在 Backbone 中渲染下拉菜单

ruby-on-rails - debugger-ruby_core_source gem 没有提供 ruby​​-2.0.0-p451 的源代码

ruby - 为什么方法在调用时不返回其最后一个表达式?

ruby-on-rails - 在 Haml::Engine 中使用 Rails 方法

ruby-on-rails - AWS 和 Rails : The authorization header is malformed; the Credential is mal-formed

ruby - 在 Ubuntu 14.04 上安装 Koala(Sass 编译器)——