Как в шаблонах Scala завершить переменную без пробела?
Мне нужно быстро изменить страницу, встроенную в Scala, в приложение Play. Не совсем уверен, как это сделать...
У меня есть переменная @name, которая содержит "foo", и я хочу сделать это:
<div id="@name" class="@name_class">
и пусть решит
<div id="foo" class="foo_class">
однако Play пытается найти переменную с именем @name_class
3 ответа
Решение
Вы можете избежать временной переменной с помощью следующего:
<div id="@name" class="@{name}_class"> ...
Вы можете сначала объединить строку и отображение:
@val class_name = name + "_class"
А затем назначьте:
<div id="@name" class="@class_name">
РЕДАКТИРОВАТЬ
Как объяснено в комментарии @Chirlo, вышесказанное не будет работать в Play 2.1, вы можете поместить конкатенацию в повторно используемый блок и использовать как таковой:
@mkClassString(name:String,tag:String):String = { name + tag }
и использовать это:
<div id="@name" class="@mkClassString(name,"_class")">
или использовать @defining
как указано в комментарии.
Вы можете заключить в скобки, я не проверял фигурные скобки.
<div id="@name" class="@(name)_class"> ...