Playframework 2.0 Scala模板无法标记HTML属性?
我希望解析“class”HTML属性中的Scala条件,但Scala模板没有发挥作用:Playframework 2.0 Scala模板无法标记HTML属性?,playframework-2.0,scala-template,Playframework 2.0,Scala Template,我希望解析“class”HTML属性中的Scala条件,但Scala模板没有发挥作用: @priceTag(amount: Currency) = @{ <div class='priceTag {if(amount.toDouble == 0.0d) "FREE"}'> {if(amount.toDouble > 0.0d) {amount.format("¤#")} else {"FREE"}} </div> } @priceT
@priceTag(amount: Currency) = @{
<div class='priceTag {if(amount.toDouble == 0.0d) "FREE"}'>
{if(amount.toDouble > 0.0d) {amount.format("¤#")} else {"FREE"}}
</div>
}
@priceTag(金额:货币)=@{
{if(amount.toDouble>0.0d){amount.format(“·#”)else{“FREE”}
}
收益率:
<div class="priceTag {if(amount.toDouble == 0.0d) "FREE"}">
£1
</div>
£1
我希望它能产生:
<div class="priceTag">
£1
</div>
£1
非常感谢您的建议我是scala的初学者,但如果这句话对我不正确,我会同意:
@if(amount > 0) {
<div class="priceTag">
@amount
</div>
} else {
<div class="priceTag FREE">
@amount
</div>
}
@if(金额>0){
@数量
}否则{
@数量
}
或:
@数量
您的代码有几个错误。他们只是互相隐藏。:-)
让我们看一下:
@priceTag(amount: Currency) = @{ ... }
@{…}
构造意味着花括号内的所有内容都是Scala代码块。这不是一个错误,因为你的块
<div class='priceTag {if(amount.toDouble == 0.0d) "FREE"}'>
{if(amount.toDouble > 0.0d) {amount.format("¤#")} else {"FREE"}}
</div>
注意两个块之前的
@
符号。我还删除了amount.format(“·#”)
和“FREE”
周围的花括号。当然,如果您愿意,您可以保留它们,但它们不是必需的。看起来您缺少了一些@
符号(@{if…}
)。我很惊讶div的内容是£1
,而不是整个if
行。@Carsten感谢您的回复,但不幸的是,在那里添加@符号没有帮助。生成HTML:class=“priceTag@{if(amount.toDouble==0.0d)“FREE”}哦,对了,我在第一行没有看到第二个@
符号。写一个答案非常感谢你的回答和解释。完美地解决了我的问题
<div class='priceTag {if(amount.toDouble == 0.0d) "FREE"}'>
{if(amount.toDouble > 0.0d) {amount.format("¤#")} else {"FREE"}}
</div>
@priceTag(amount: Currency) = {
<div class='priceTag @{if(amount.toDouble == 0.0d) "FREE"}'>
@{if(amount.toDouble > 0.0d) amount.format("¤#") else "FREE"}
</div>
}