我主要猜测如何在Play中使用@
。如果我在if
和(
之间没有空格,则会编译以下代码,但不会编译。另外,我必须使用@
作为if
,但不能使用else
或结束括号。
问题:
我不应该将@用于Scala编写的所有代码吗?
在Play框架视图中使用@有哪些规则?
这不编译:
@if (userForm.value.isDefined) {
这样做:
@if(userForm.value.isDefined) {
<h1>@userForm.get.name (userForm.get.age)</h1>
<h2>Lives at @userForm.get.address.fullStreet</h2>
**} else { //no @ required!**
<h1>Feed User Data</h1>
@helper.form(action=routes.Data.post){
@helper.inputText(userForm("name"))
<input type="submit" name="send" value="submit"/>
} **//no @ required for closing braces!**
}
答案 0 :(得分:1)
模板语言中的特殊字符JSON.parse
通常称为the magic character或twirl(与Play模板引擎一样)。作为documentation状态,它表示动态语句的开始。
我不能将@用于用Scala编写的所有代码吗?
不,仅针对动态声明的开头。正如您已经注意到的那样,您不需要@
块的魔术字符@
,因为它是else
语句的一部分。
在Play框架视图中使用@有哪些规则?
我能想到的唯一规则是没有必要显式关闭动态语句。另外,请注意使用if
转义@
,例如@@
。