Scala / Playframework - IF函数未按预期工作,结果始终为真:
@if(Play.current.configuration.getString("all.team.objectId") != user.currentGroupId.toString) {
<div class="teamSelection clearfix">
Team:
<select class="customSelectUI-groupPicker" data-delegate-id="group-select" data-delegate-option="del-option" name="groupId" data-xpl="groupSelect" onchange="document.forms['groupChooser'].submit()" id="selGroupList">
@for( g <- user.groups.filter(_.status == UserStatus.ACTIVE)) {
<option @{if(user.currentGroupId == g.groupId) "SELECTED" } value="@g.groupId">@g.name</option>
}
</select>
</div>
}
Play.current.configuration.getString("all.team.objectId")
- 字符串
user.currentGroupId
对象ID ,这就是为什么我使用&#34; toString
&#34;将其转换为字符串的原因
其他信息:
我尝试@Play.current.configuration.getString("all.team.objectId")
和@user.currentGroupId.toString
只是为了查看比较值,即使值相同,结果仍为true,它应该为false并隐藏下拉列表选择。
回答: 感谢David和Liosedhel
@Monnster,从你的问题来看,我假设你正在使用play.api.Play对象,所以,方法getString返回一个Option [String]而不是String,这就是为什么你总是如此 - David
根据David评论,你应该使用这个结构Play.current.configuration.getString(&#34; all.team.objectId&#34;)。getOrElse(&#34;&#34;);此表达式返回String(Not Option [String])对于您预期的行为。 (我不会将此作为答案发布,因为@David评论在我之前)。 - liosedhel
Play.current.configuration.getString("all.team.objectId").getOrElse("");