将参数从一个模板传递到另一个模板

时间:2013-11-29 22:42:38

标签: scala playframework-2.0

我正在尝试使用提供的模板系统编写带有Play的Web应用程序。我试图将模板分成标题和内容区域。下面是我为模板编写的代码:

内容:

@(file: models.File)
@header(@file.title)
<h2>@file.title</h2>
<img src="@file.fileLocation">

部首:

@(title: String)
<!DOCTYPE html>
<html>
  <head>
    <title>@title</title>
  </head>
  <body>

我收到的错误是:

2: illegal start of simple expression
[error] @header(@file.title)
[error]         ^

看起来我试图将title参数错误地传递给标题模板。我应该使用什么语法来传递title参数?

1 个答案:

答案 0 :(得分:1)

Play模板解析器将@识别为Scala表达式的开头,但它使用magic来确定表达式的结尾位置。 (我认为,有点像寻找关闭的parens或braces)。

因此,在您的代码中,@header(@file.title)是所有Scala代码,而不是HTML模板,第二个@是不必要的。您只需要@header(file.title)