g:set grails 中模板主体内的标记

g:set tag inside template body in grails

我在 g:render 模板正文中使用 <g:set> 标签

<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 标记?

试试这个:

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

首先你需要在调用渲染方法之前设置变量。

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

然后您可以使用模型属性在您的模板中传递这个变量。喜欢:

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

您尝试使用的 body() 用于传递要在模板内显示的其他正文内容。喜欢:

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