Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 2.0 Scala模板无法标记HTML属性?_Playframework 2.0_Scala Template - Fatal编程技术网

Playframework 2.0 Scala模板无法标记HTML属性?

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

我希望解析“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>
}
@priceTag(金额:货币)=@{
{if(amount.toDouble>0.0d){amount.format(“·#”)else{“FREE”}
}
收益率:

<div class="priceTag {if(amount.toDouble == 0.0d) &quot;FREE&quot;}"> 
    £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>
}