Я новичок в Scala/Lift, и у меня возникают проблемы с отображением списка с необязательными «тегами» для каждого элемента.
Мой HTML-шаблон говорит
<lift:Items.list>
<e:name>Rock</e:name><br />
<e:warning><span style="color:#ff0000;">DANGER!</span></e:warning>
</lift:Items.list>
А на Items.scala у меня есть
def list(node : NodeSeq) : NodeSeq = {
getItems flatMap( it => {
Helpers.bind("e", node,
"name" -> { Text(it.name) },
"warning" -> {
if (it.isDangerous) { <<INSERT HTML FROM TEMPLATE>> }
else { Text("") }
}
)
})
}
В некоторых случаях я хотел бы, чтобы содержимое тега "e:warning" отображалось дословно. Я уверен, что есть простой способ извлечь их из «узла», но я предполагаю, что у меня есть серьезные пробелы в моих знаниях о лифтах, потому что я не могу понять, как это сделать. Если бы кто-нибудь мог указать мне правильную процедуру, я был бы очень благодарен.
ОТВЕТ: Спасибо за совет. В итоге я структурировал свой код следующим образом:
"warning" -> { (n : NodeSeq) => {
if (it.isDangerous) { n } else { Text("") }
}}