【问题标题】:Passing a Parameter From One Template to Another将参数从一个模板传递到另一个模板
【发布时间】:2013-11-30 07:22:13
【问题描述】:

我正在尝试使用提供的模板系统编写一个带有 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 参数?

【问题讨论】:

    标签: scala playframework-2.0


    【解决方案1】:

    Play 模板解析器将@ 识别为 Scala 表达式的开头,但它使用魔法来确定表达式的结尾在哪里。 (我认为类似于寻找右括号或大括号)。

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

    【讨论】:

    • 感谢您的澄清。我知道第二个 @ 导致了问题,但不知道如何解决问题。
    猜你喜欢
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多