Scala Lift - динамическая страница хром - PullRequest
1 голос
/ 02 ноября 2011

У меня есть страница, которой передается идентификатор, по которому определяется содержание. То, что я хочу сделать, это динамически заменять страницы "хром" в зависимости от содержимого.

Так что, если у меня есть запись БД "Книга", я бы хотел отобразить хром книги в скрытых шаблонах.

Спасибо за любую помощь, высоко ценится:)

1 Ответ

1 голос
/ 02 ноября 2011

Вы можете определить фрагмент, который выбирает нужный шаблон, и передать ему 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" in Text("default") внутри фрагмента, вы можете выбрать другой шаблон в зависимости от ваших потребностей. Может быть, вы хотите сделать что-то вроде def choose (record: Record) = record match { case b: Book => "booktemplate"} и так далее ...

Источник: Сообщение Мэдса Хартманна

...