使用grails标记有条件地向html元素添加类

Rob*_*son 10 grails gsp

使用标签,您可以在gsp中执行此操作:

<g:if test="${someBean?.aCondition}">
  <div class="aSection">
  ...
  </div>
</g:if>
Run Code Online (Sandbox Code Playgroud)

我真正想做的是添加第二个'类',它包含'display:none'或'display:block'属性,基于'$ {someBean?.aCondition}'的值.

最终的HTML会这样:

<div class="aSection hiddenItem">
...
</div>
Run Code Online (Sandbox Code Playgroud)

(如果$ {someBean?.aCondition}为真,div将为其类设置'shownItem')

相应的css:

.shownItem
{
  display: block;
}
.hiddenItem
{
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

有什么好办法实现这个目标?

bil*_*dev 19

很容易:

<div class="aSection ${someBean?.aCondition ? 'shownItem':'hiddenItem'}">
...
</div>
Run Code Online (Sandbox Code Playgroud)

您可以在html属性中使用$ {}块,没问题,只是确保不要在表达式块中使用任何双引号,因为这会混淆事情.


Spi*_*der 6

或者,如果您不希望某些(例如自动聚焦标记)条件显示该属性:

<input name="email" type="text" class="input-small" placeholder="Email" ${!flash.email ? 'autofocus="autofocus"':''} value="${flash.email}">
Run Code Online (Sandbox Code Playgroud)