Playframework 2.0.x是否支持<;否则,如果>;在模板中
我想知道play 2.0.3和更高版本是否支持Playframework 2.0.x是否支持<;否则,如果>;在模板中,playframework,Playframework,我想知道play 2.0.3和更高版本是否支持,或者是否在视图中支持?我只知道一个人必须这样编码:if{…}else{if{…}else{…}不能相信这一点。不,它不相信。它只允许您执行if(condition){then…}else{else…} 有关需要使用的更多可能性(类似于PHP的switch()) 在这种情况下,是默认选项 来自先前版本的Play Authenticate的示例(现在控制器中的反射也一样) 因此,您最好的选择可能是在控制器中解析条件,并将其作为参数传递给视图?我也能够
,或者是否在视图中支持?我只知道一个人必须这样编码:if{…}else{if{…}else{…}
不能相信这一点。不,它不相信。它只允许您执行if(condition){then…}else{else…}
有关需要使用的更多可能性(类似于PHP的switch()
)
在这种情况下,是默认选项
来自先前版本的Play Authenticate的示例(现在控制器中的反射也一样)
因此,您最好的选择可能是在控制器中解析条件,并将其作为参数传递给视图?我也能够
@{if (true) "foo" else if (true) "bar" else "baz"}
工作。请记住,大多数编程语言不支持将“elseif”作为词法标记。它们是独立的命令。“else”命令执行的代码块恰好是一个“if”语句
还请注意,您可以将XHTML与以下子句混合使用:
@{if (true) <b>foo</b> else if (false) "bar" else "baz"}
@{if(true)foo else if(false)“bar”else“baz”}
我同意biesior的观点,将状态逻辑推入控制器通常是一个好主意,然后您可以拥有不同状态的不同视图,共享组件有自己的子视图。否,scala模板中不支持“else if”:
您可以使用模式匹配,也可以将if放入else中。我在第二个if之前使用了@:
@if (true) {
...
} else { @if (true) {
...
} else {
...
}}
您可以在Scala
中使用switch语句来实现它。
示例:
if(x>2){
<block 1>
} else if(x>0) {
<block 2>
} else {
<block 3>
}
if(x>2){
}如果(x>0),则为else{
}否则{
}
翻译成:
x match {
case x if(x>2) => {<block 1>}
case x if(x>0) => {<block 2>}
case _ => {<block 3>}
}
x匹配{
如果(x>2)=>{}
如果(x>0)=>{}
案例u=>{}
}
“希望”在某些情况下可以帮助您,而“希望播放框架”将在不久的将来支持。托德·弗兰德斯的答案是正确的。在包装器@{}中,您可以编写普通的Scala代码。范例
@{
if (profile.sex == 0) {
<p class="col-md-6">Other</p>
} else if (profile.sex == 1) {
<p class="col-md-6">Male</p>
} else {
<p class="col-md-6">Female</p>
}
}
@{
如果(profile.sex==0){
其他
}else if(profile.sex==1){
男性
}否则{
女性
}
}
如果最新的playframework支持
,则现在如果else。讨论到此结束
您可以这样使用:
@if(something) {
...
} else if (somethingElse) {
...
} else {
...
}
对我来说,@if()不能有空格。警告:“else”必须与上一个结束括号在同一行(是的……说真的,叹气……)@AdrienBe哦,是的,这让我的头转了好一阵子Hanks,这是有史以来最好的答案。为什么你们不投票支持这个答案?我同意这是解决这个问题最明智的办法。现在它得到了支持。您需要使用最新的playframework。你确定它已经发布了吗?我使用的是2.5.14
,但它仍然无法编译(我复制了您的示例,并将条件替换为true
,将点替换为
。或者我遗漏了什么?
@if(something) {
...
} else if (somethingElse) {
...
} else {
...
}