在Haml中构建布局模板
我有一个使用Haml进行布局的网页。 有一个单独的布局文件(layout.haml),在渲染任何实际的haml页面时使用。 layout.haml看起来像
-# layout.haml !!! XML !!! %html %head ... %body ... #content= yield
问题:这当然已经存在于文档的因此不能直接操作标题中的内容。 例如,
通过@title
更改。 什么是更大的问题是每个页面特定的Javascript需要在正文中加载。 而且layout.haml已经包含Javascript,因此jQuery通常被多次实例化。
有关更好的模板结构的任何建议吗?
此解决方案仅适用于Ruby on Rails:
您可以使用yield(:location)
和content_for(:location)
方法,获取更多信息 。
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!
我使用偏见:
!!! %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')