【问题标题】:Scala - Playframework 2.3 - serve a partial HTMLScala - Playframework 2.3 - 提供部分 HTML
【发布时间】:2016-04-19 20:42:38
【问题描述】:

我有一个后端应用,没有视图。现在我必须添加“服务条款”,我的想法是提供部分 HTML。我不想拥有所有的 HTML,因为那样我会将其嵌入到不同的地方(WEB 和移动)。

这是我的看法

@{
  <h1>Hello world!!!</h1>
}

我的控制器

object TosEndpoints extends Controller {

  def get() = PublicApi.async {
    Ok(views.html.tos("Terms of service"))
  }
}

我的路线配置文件

GET   /tos               controllers.TosEndpoints.get()

我无法提供视图的内容

我得到例如这个错误

app/views/tos.html.scala:1: identifier expected but '{' found.
[error] @{

更新

如果我删除参数,我会得到同样的错误。

如果我传递一个参数并将其绑定在视图中(如 @AliDehghani 建议的那样),我会收到此错误 app/views/tos.html.scala:1: ')' 预期但 ':' 找到。 [错误] @(tos: 字符串)

【问题讨论】:

  • “不工作”是什么意思?
  • 谢谢@Ryan,我希望现在更清楚,如果没有,请告诉我。

标签: scala playframework


【解决方案1】:

问题是您使用太多参数调用视图。您应该通过删除额外的参数来修复渲染部分:

Ok(views.html.tos())

或者以接受传递的参数的方式更改您的视图,如下所示:

@(tos: String)

<h1>Hello world!!!</h1>
<p>@tos</p>

然后您可以通过以下方式渲染视图:

Ok(views.html.tos("Terms of service"))

【讨论】:

  • 谢谢你的回答,我编辑了我的帖子来解释发生了什么。
  • 暂时将PublicApi.async替换为Action,看看会发生什么
  • 最后是我把文件命名错了,而不是tos.scala.html我把文件命名为tos.html.scala
  • 如果您编辑答案并添加此信息,我将其标记为正确答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多