2010-12-03 37 views
2

在轨,我已经习惯了使用yield/content_for现场目。 (http://guides.rubyonrails.org/layouts_and_rendering.html#using-content_for有没有办法在GRAILS中执行rails“yield/content_for”?

我无法找到Grails的文档的方式做到这一点...你能帮助我吗?

编辑

这里的情况是:

我有一个包含这样的布局:

<body> 
    <div id="wrapper"> 
     <div id="container"> 
      <div id="header"> 
       <g:render template="/layouts/header"/> 
      </div> 
      <g:render template="/layouts/menu"/> 
      <div id="container-homepage"> 
       <g:layoutBody/> 
       <div id="subfooter"> 
        <div id="content"> 
         <div id="left"> 
          <div id="logo_sub_header"></div> 
         </div> 
         <div id="right"></div> 
        </div> 
       </div> 

      </div> 
     </div> 
    </div> 
</body> 

而且我希望能够添加HTML代码段(搜索工具栏的例如)在container-homepage div之上。部分可以做的伎俩..如果这个搜索工具栏总是相同的。这里的事情是这个搜索栏取决于我正在访问的页面。

我也可以改变容器主页div的位置,直接放入视图中,而不是布局,但是我必须在所有视图中对它进行操作,而这不是DRY。

任何想法? 问候,

+1

我觉得内容块会为你工作。看到我下面的回复。 Fabrizio – 2010-12-03 13:57:14

回答

2

我认为你有两个解决方案:

的G:呈现标签是最好的选择,如果你的内容块不会改变基于自定义页面上。

无论如何,我会看看啊这个链接 http://grails.org/Content+Blocks

因为G:pageProperty它是最优雅和灵活的解决方案。

+0

感谢解决方案2是我一直在寻找的! – Pasta 2010-12-03 13:55:53

0

也许g:render标签是你在找什么?它允许您在视图中的任何位置呈现模板(包括在其他模板中)。您也可以传入模板以供模板使用。

注意在该页面底部的命名约定的部分 - 模板视图GSP文件名应以下划线开始(尽管这下划线未在渲染标签提供)。有一个方法来覆盖这个,但事情工作自动,如果你把下划线在那里。

+0

我编辑我的问题来解释一个部分不会做的伎俩。 – Pasta 2010-12-03 13:47:25

相关问题