Scala Lift - 动态页面镶边

时间:2011-11-02 17:52:27

标签: scala lift

我有一个页面,传递了一个id,从中确定了内容。我要做的是根据内容动态替换“chrome”页面。

因此,如果我有一个db记录“Book”,我想在模板隐藏中显示Book chrome。

感谢您的帮助,非常感谢:)

1 个答案:

答案 0 :(得分:1)

您可以定义一个选择所需模板的代码段,并将包含模板选择的xhtml NodeSeq传递给它:

<lift:TemplateSnippet.dynamicTemplatePicking>
    <lift:surround dynamic:template="" at="content">
        <h2>some heading</h2>
        <p>some text</p>
    </lift:surround>
</lift:TemplateSnippet.dynamicTemplatePicking>

代码段:

class TemplateSnippet {  
    def dynamicTemplatePicking(xhtml :NodeSeq) :NodeSeq = {
        bind("dynamic", xhtml, AttrBindParam("template", Text("default"), "with"))
    }
}

通过更改代码段内"default"中的Text("default"),您可以根据需要选择其他模板。也许你想做def choose (record: Record) = record match { case b: Book => "booktemplate"}之类的事情......等等......

来源:Mads Hartmann's posting