Как в шаблонах 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"> ...
Другие вопросы по тегам