在我的.gsp
我有一个下拉选择选项。
<g:select id="id"
name="name"
disabled="${model.x == MyEnum.X}" //<--- note here
from="${MyEnum.values()}"
optionValue="naturalName"
noSelection="['': '']"
value="${model?.x}"/>
此部分生成的.html
如下所示 -
<select id="id" name="name" > //n <--- note here
<option value=""></option>
<option value="A" >A</option>
</select>
*注意:未生成disabled
属性!
但是如果我首先将禁用属性的逻辑和值放在变量中 -
<g:if test="${model.x == MyEnum.X}">
<g:set var="disabled" value="true"/>
</g:if>
然后,使用disabled
属性 -
<g:select id="id"
name="name"
disabled="${disabled}" //<------here
from="${MyEnum.values()}"
optionValue="naturalName"
noSelection="['': '']"
value="${model?.x}"/>
按预期工作!我的意思是,在生成的disabled="disabled"
文件中生成.html
-
<select id="id" name="name" disabled="disabled"> //n <--- here
<option value=""></option>
<option value="A" >A</option>
</select>
有人可以解释这个不一致的行为,为什么.gsp
无法处理 1'st 方法但 2'nd
我说不一致,因为在这两种方法中我都进行了相同的boolean
检查,但.gsp
在第二种方法上准确工作。
仅供参考:我的grails版本是2.4.4
答案 0 :(得分:0)
我尝试了类似以下的工作:
<div style="text-align: right;margin: 5px 10px;">
State: <g:select name="state" from="${testapp.State.values()}" value="${testapp.State.HR}" disabled="${1==1}"/>
</div>
那么,请你分享一个复制问题的示例应用程序吗?