【问题标题】:Play Framework Twirl template html element attributePlay Framework Twirl 模板 html 元素属性
【发布时间】:2016-04-13 22:55:48
【问题描述】:

我正在使用 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>
    }
}

【问题讨论】:

    标签: scala playframework twirl playframework-2.5


    【解决方案1】:

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

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

    在这些模板中声明变量并不像看起来那么容易。 Check the documentation 一些例子。

    【讨论】:

    • 感谢您的回复。发帖后我开始意识到局限性。您的解决方案将起作用。我将提供我自己的更多参考,因为这些类型的示例很难找到。
    【解决方案2】:

    我会使用@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>
        }
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-04
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2021-11-07
      • 1970-01-01
      • 2017-11-17
      相关资源
      最近更新 更多