Есть ли способ сделать рельсы "yield / content_for" в GRAILS? - PullRequest
2 голосов
/ 03 декабря 2010

В рельсах я привык использовать yield/content_for для размещения сетки.(http://guides.rubyonrails.org/layouts_and_rendering.html#using-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-контейнера container-homepage, чтобы поместить его непосредственно в представление, а не в макет, но тогда мне придется использовать его во ВСЕХ видах, и это не СУХОЙ.

Есть идеи? С уважением,

Ответы [ 2 ]

2 голосов
/ 03 декабря 2010

Я думаю, у вас есть два решения:

тег g: render - лучший вариант, если ваш блок контента не изменится в зависимости от пользовательской страницы.

В любом случае, я бы посмотрелах эта ссылка http://grails.org/Content+Blocks

, потому что g: pageProperty это самое элегантное и гибкое решение.

0 голосов
/ 03 декабря 2010

Возможно, вам нужен тег g: render ?Это позволяет вам отображать шаблон в любом месте вашего представления (в том числе в других шаблонах).Вы также можете передать модель для использования в шаблоне.

Обратите внимание на раздел внизу этой страницы, посвященный соглашениям об именах - представление шаблона gsp имена файлов должны начинаться с подчеркивания (хотя это подчеркивание не указывается втег рендеринга).Возможно, есть способ переопределить это, но все работает автоматически, если вы поставите подчеркивание там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...