5

如何在 Play framework 2.x Scala 模板中创建内联变量?我不清楚Play's guide中的路径:

@defining(user.firstName + " " + user.lastName) { fullName =>
  <div>Hello @fullName</div>
}
4

3 回答 3

10

首先,您不会创建变量,而是创建一个,这意味着它是只读的。

在您的示例中,您创建了一个fullName可在大括号内访问的值。

@defining("Farmor") { fullName =>
  <div>Hello @fullName</div>
}

将打印Hello Farmor

要定义一个可以在模板中全局访问的值,只需用大括号将所有内容包含在内。

例如

@defining("Value") { formId =>
  @main("Title") {
    @form(routes.Application.addPost, 'id -> formId) {
      @inputText(name = "content", required = true)
      <input type="submit" value="Create">
    }
  }
}

在示例中,您可以使用任何值formId

于 2012-05-06T18:59:00.370 回答
9

如果您不想使用@defining语法,您可以定义reusable block每次使用时都会评估的语法:

@fullName = @{
  user.firstName + " " + user.lastName
}

<div>Hello @fullName</div>

使用相同的语法,您还可以将参数传递给块: https ://github.com/playframework/Play20/blob/master/samples/scala/computer-database/app/views/list.scala.html

于 2013-06-28T10:19:39.157 回答
2

这很容易,使用示例中的代码跨越您的块,然后您将可以使用@fullName具有值的变量:

user.firstName + " " + user.lastName
于 2012-05-06T19:03:01.123 回答