15.2 Solution
Snippets are evaluated recursively... this means that you can return markup from a snippet that contains other snippets.
The other thing to pay attention to is the
<lift:embed> snippet (See
↑).
Combining the two:
Main page:
<html><body> Stuff here
<div class="lift:ChooseBehavior">Different behavior will go here</div>
</body></html>
The snippet:
object ChooseBehavior {
def render = someState match {
case ShowData => <lift:embed what="_showData" />
case EditData => <lift:embed what="_editData" />
case AjaxThing => <lift:embed what="_ajaxThing" />
}
}
Then your designer need only edit the main page and each of the templates, and then you wire them together.
(C) 2012 David Pollak