2015-02-06 4 views
1

Я с помощью <g:set> тег внутри тела шаблона g:renderг: набор тегов внутри шаблона тела в Граалей

<g:render template="/template/panelContainer"> 
    <g:set var="tomorrow" value="${new Date() + 1}"/> 
    ${tomorrow} 
</g:render> 

_panelContainer.gsp:

<div class="panel panel-default"> 
${raw(body())} 
</div> 

Однако tomorrow переменная не установлена. Как мне нужно внедрить шаблон для правильного выполнения тега g:set?

ответ

0

Попробуйте это:

<g:set var="tomorrow" value="${new Date() + 1}"/> 
<g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}"/> 
+0

Это работает, но я потратил несколько часов, пытаясь понять, почему не работает внутри шаблона. –

1

Прежде всего, вам нужно установить переменную перед вызовом метода визуализации.

<g:set var="tomorrow" value="${new Date() + 1}"/> 

Затем вы можете передать эту переменную в свой шаблон, используя атрибут model. Как:

<g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}"/> 

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

<g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}"> 
    <a href="..">..</a> 
</g:render> 
Смежные вопросы