Играть! framework: определить переменную в шаблоне?
Я перехожу к шаблону Event
, и мне нужно проверить значение @event.getSeverity
. если значение положительное, я хочу пометить конкретный <div>
зеленым цветом. если значение отрицательное, я хочу покрасить конкретный <div>
в красный цвет.
Я не мог найти способ определить переменную. Является ли это возможным? должно быть, я думаю.
во всяком случае, какой самый простой способ это сделать?
спасибо
Ответы
Ответ 1
Как указано в документации Play, вы можете использовать помощник @defining
.
@defining(if (event.getSeverity > 0) "green" else "red") { color =>
<div style="background-color: @color">foo</div>
}
Или вы можете использовать reusable block
@severityColor(event: Event) = @{
if (event.getSeverity > 0) "green" else "red"
}
<div style="background-color: @severityColor(event)">foo</div>
Ответ 2
попробуйте это в шаблоне scala
@import java.math.BigInteger; var i=1; var k=1
и для строки
@import java.lang.String; val name="template"
в вопросе аспект
@import java.lang.String; var color="red"
@if(event.getSeverity>0){
@{color="green"}
}
<div style="background-color: @color">foo</div>
Ответ 3
Другой вариант. Работает нормально, если объявлено после раздела импорта. В противном случае могут возникнуть некоторые ошибки ( "значение не найдено" )
@import play.i18n.Messages
@import models.Customers
@customers = @{Customers.allAccepted()}
...
@if(customers.size()>0) {
<ul>
@for(customer <- customers) {
<li>
<a href="/filters/customer/@customer.id">@customer.name</a>
</li>
}
</ul>
}
Ответ 4
" для" могут быть полезны также несколько раз:
@for(id <- products.keys;
product = products(id);
author = product.author.getOrElse("N/A")) {...
@product.name
...
@author