【发布时间】:2012-10-05 22:15:06
【问题描述】:
我正在尝试通过 Comet 动态更新 HTML 表格。我有类似以下的内容:
class EventsComet extends CometClient[Event] {
def server = Event
def render = {
println("Binding on: " + defaultHtml)
data.flatMap( event =>
bind("event", "name" -> event.name.toString, "date" -> event.startDate.toString)
)
}
}
还有:
<lift:comet type = "EventsComet">
<table>
<thead>
<tr>
<th>Name</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td><event:name />Test Name</td>
<td><event:date />Oct. 25, 2012</td>
</tr>
</tbody>
</table>
</lift:comet>
这会一遍又一遍地打印出整个表格,每个事件对应一个由 EventsComet 呈现的事件。 println 语句输出整个表节点。
所以我尝试了变化:
<table>
<thead>
<tr>
<th>Race</th>
<th>Track</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<lift:comet type = "EventsComet">
<tr>
<td><event:name />Test Name</td>
<td><event:date />Oct. 25, 2012</td>
</tr>
</lift:comet>
</tbody>
</table>
正如预期的那样,HTML5 解析器去除了 [lift:comet] 标记并且没有发生绑定。
所以我尝试将行切换为:
<tr lift:comet = "EventsComet">
<td><event:name />Test Name</td>
<td><event:date />Oct. 25, 2012</td>
</tr>
...如 sn-p 示例 here 中所示,但使用此语法,我的 CometClient 根本没有被实例化。
谁能建议正确的语法?
EventsComet 本身运行良好;它可以毫无问题地使事件列表保持最新。我只在使用表时遇到问题(可能还有其他我还没有尝试过的高度嵌套的结构?)。
谢谢。对于这样一个简单的问题,这一切都相当令人沮丧,这让我只想开始用强类型的模板语言而不是使用绑定来实现我的模板。
【问题讨论】:
标签: scala html-table comet lift