Graj! framework: zdefiniować zmienną w szablonie? [duplikat]

To pytanie ma już odpowiedź tutaj:

Przekazuję do szablonu obiekt {[0] } i muszę sprawdzić wartość @event.getSeverity. jeśli wartość jest dodatnia, chcę pokolorować konkretną <div> na Zielono. jeśli wartość jest ujemna, chcę pokolorować konkretną <div> na Czerwono.

I nie mogłem znaleźć sposobu na zdefiniowanie zmiennej. czy to możliwe? tak powinno być.
w każdym razie, jaki jest najprostszy sposób osiągnięcia tego?

Dzięki

Author: Govind Singh, 2012-10-24

4 answers

Jak podano w dokumentacji Play możesz użyć helpera @defining.

@defining(if (event.getSeverity > 0) "green" else "red") { color =>
    <div style="background-color: @color">foo</div>
}

Lub możesz użyć reusable block

@severityColor(event: Event) = @{
    if (event.getSeverity > 0) "green" else "red"
}

<div style="background-color: @severityColor(event)">foo</div>
 42
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-24 20:13:29

Spróbuj tego w szablonie scala

@import java.math.BigInteger; var i=1; var k=1  

I dla ciągu

@import java.lang.String; val name="template"

W pytaniu

@import java.lang.String; var color="red"
@if(event.getSeverity>0){
@{color="green"}
}
<div style="background-color: @color">foo</div>
 9
Author: Govind Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-14 14:59:03

Inny wariant. Działa dobrze, jeśli zadeklarowano po sekcji importu. W przeciwnym razie może spowodować błędy ("wartość nie znaleziona")

@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>
}
 9
Author: Rib47,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-04 08:29:26

"dla " składanie może być również przydatne czasami:
@for(id <- products.keys; product = products(id); author = product.author.getOrElse("N/A")) {... @product.name ... @author

 1
Author: kairius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-10 20:32:07