1

我正在使用 Play Framework 2.5,处理 scala.html 和 Twirl 模板。有人可以帮我理解如何将跨度上的“密钥”设置为我的“有效 ID”吗?

我似乎无法让它在 html 元素属性中工作。我不确定使用什么语法将我的 val id 写入我的 span 键。

谢谢你的帮助。

@{
    val rank = player.rank
    val id = player.id

    if(rank == "Great") {
        <span key="{id}">{rank}</span>
    } else if(rank == "Good") {
        <span key="{id}">{rank}</span>
    }
}

4

2 回答 2

2

您不能在@{ }块内添加 html。你想要的可能是这样的:

@if(player.rank == "Great") {
    <span key="@player.id">@player.rank</span>
} else if(player.rank == "Good") {
    <span key="@player.id">@player.rank</span>
}

在这些模板中声明变量并不像看起来那么容易。检查文档以获取一些示例。

于 2016-04-13T23:29:03.900 回答
1

我会使用 @defining(){} 来解决我的问题。Twirl 没有 else if。我将默认使用 if 语句。这就是我解决它的方法。

@defining(player.rank) { rank =>
    @defining(player.id) { id =>
        @if(rank == "Great") {
            <span key="@id">@rank</span>
        }
        @if(rank == "Good") {
            <span key="@id">@rank</span>
        }
        
        <select key="@id">
        @for((key, value) <- model.getAllRankings()){
            <option id="@key" @if(rank == value) {selected}>@value</option>
        }
        </select>
    }
}

于 2016-04-14T14:39:42.523 回答