1

我主要是在猜测如何@在 Play 中使用。if如果我在and之间没有空格,则以下代码将编译,否则编译(。此外,我必须使用@forif但不是 forelse或右大括号。

问题:

  1. 我不应该对所有用 Scala 编写的代码使用 @ 吗?

  2. 在 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!**
        }
4

1 回答 1

1

模板语言中的特殊字符@通常被称为魔术字符旋转​​(如 Play 模板引擎)。正如文档所述,它表示动态语句的开始。

我不应该对所有用 Scala 编写的代码使用 @ 吗?

不,只是动态语句开始。正如您已经注意到的,您不需要魔术字符作为块,因为它是语句的一部分。@elseif

在 Play 框架视图中使用 @ 的规则是什么?

我能想到的唯一规则是不必显式关闭动态语句。另外,请记住使用 逃逸@@@例如john@@doe.com.

阅读有关Play 模板引擎常见用例的更多信息。

于 2017-01-07T20:39:47.630 回答