我已经开始玩 Lift。我想创建一个基本应用程序,它通过输入字段从用户那里获取输入,对该输入执行数据库搜索,并获取该数据库搜索的结果并创建一个对象列表,然后将其绑定到一些 html 代码。
我只需要绑定部分的帮助,但首先需要一些背景信息。
我有一个列表[节点]:
case class Node(aname:String, adata:String) {..}
我有这个 html 要绑定到:
<div class="lift:helloWorld.displayNodes">
<div>
<div><li><B>Node:</B></li></div>
<div>Name: <node:name></node:name></div>
<div>Data: <node:data></node:data></div>
<BR>
</div>
</div>
问题是这段代码从代码片段中调用了我的方法 displayNodes 并将其自身传递进来。这样我可以绑定到它,因为我有 html 代码。所以我像这样绑定:
//this method is called from the index.html and
def displayNodes(html : NodeSeq) : NodeSeq = {
nodeList.flatMap {node => Helpers.bind("node", html, "name"->node.name, "data"->node.data) }
}
现在的问题:
我如何绑定而不在 html 中指定我希望 html 代码调用哪个方法。我的意思是我想删除这一行:<div class="lift:helloWorld.displayNodes">
因为我不想在填充列表之前调用它。所以基本上不是html“调用”scala代码,而是我希望scala代码调用html并绑定到它,但只有在它有数据之后。如何才能做到这一点?
PS - 我查看了 cookbook.liftweb.net,但他们没有我需要的示例。