Подтвердить что ты не робот

Играть! framework: определить переменную в шаблоне?

Я перехожу к шаблону Event, и мне нужно проверить значение @event.getSeverity. если значение положительное, я хочу пометить конкретный <div> зеленым цветом. если значение отрицательное, я хочу покрасить конкретный <div> в красный цвет.

Я не мог найти способ определить переменную. Является ли это возможным? должно быть, я думаю.
во всяком случае, какой самый простой способ это сделать?

спасибо

4b9b3361

Ответ 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