我的文件 form.scala.html 看起来像
@(ac: models.entities.Account)
. . .
<form id="accountForm" action="@routes.Accounts.save(ac.getId())" method="POST">
<table>
<tbody>
. . .
<tr>
<td>Role</td>
<td>
<select name="role" id="role">
@for((value, text) <- models.entities.Account.getRoles()) {
<option @if(value == ac.role){"selected"} value="@value"> @text </option>
}
</select>
</td>
</tr>
. . .
</tbody>
</table>
<p align="center">
<input type="submit" value="Save">
<a class="button" href="@routes.Accounts.index()">Cancel</a>
</p>
</form>
我想要输出 HTML 像
. . .
<td>Role</td>
<td>
<select name="role" id="role">
<option value="1"> Admin </option>
<option selected value="2"> User </option>
</select>
</td>
. . .
但是selected
没有出现。布局有什么问题吗?也许我累了,但我就是无法理解。感谢您浪费时间。
模板引擎尝试转义字符串数据有时会出现奇怪的情况,当我尝试使用模板变量写入整个属性而不是模板化它们的值时,我就遇到了这种情况。您应该能够通过将 "selected"
包装在 Html
构造函数中以使 Twirl 按字面意思处理它来解决此问题。所以:
<option @if(value == ac.role){Html("selected")} value="@value"> @text </option>
您还应该在 Twirl 项目中提出一个问题,因为我个人认为您的方式应该按原样工作。
我是一名优秀的程序员,十分优秀!