【发布时间】:2015-08-18 19:56:24
【问题描述】:
好的,我一直在纠结这个问题,并且花了很多时间尝试不同的事情来做一些我使用 PHP 很容易做到的事情。
我正在尝试迭代列表,同时在本地跟踪变量,同时吐出 HTML 以尝试填充表格。
尝试 #1:
@{
var curDate : Date = null
for(ind <- indicators){
if(curDate == null || !curDate.equals(ind.getFirstFound())){
curDate = ind.getFirstFound()
<tr><th colspan='5' class='day'>@(ind.getFirstFound())</th></tr>
<tr><th>Document ID</th><th>Value</th><th>Owner</th><th>Document Title / Comment</th></tr>
}
}
}
我也尝试使用 scala 块语句来允许我将 curDate 作为变量保留在创建的范围内。此块正确维护 curDate 状态,但不允许我向 DOM 输出任何内容。由于我未转义,随机抛出 HTML,我实际上并没有期望它会编译,但确实如此。尽管决策结构在服务器上正确执行,但这个循环只是在 DOM 上没有放置任何内容。
我尝试使用@Html('...') 进行转义,但产生了编译错误。
尝试 #2:
很多谷歌搜索让我找到了“理解”:
@for(ind <- indicators; curDate = ind.getFirstFound()){
@if(curDate == null || !curDate.equals(ind.getFirstFound())){
@(curDate = ind.getFirstFound())
}
<tr><th colspan='5' class='day'>@(ind.getFirstFound())</th></tr>
<tr><th>Document ID</th><th>Value</th><th>Owner</th><th>Document Title / Comment</th></tr>
}
如果没有这个块中的 if 语句,这是我最接近我真正想做的事情,但显然我不允许重新分配非引用类型,这就是为什么我希望尝试 #1 的引用声明curDate : Date = null 会工作。这种尝试让我获得了页面上的 HTML(同样,如果我删除了嵌套的 if 语句)但没有让我获得
我的问题是,我该如何实现这个意图?我非常痛苦地意识到我缺乏 Scala 知识,而 Play 模板语法加剧了这种情况。我不知道该怎么办。
提前致谢!
【问题讨论】:
标签: scala playframework playframework-2.0