【发布时间】:2015-01-02 17:31:26
【问题描述】:
我正在编写一个 Play 2.3.2 应用程序。
在我的控制器中,我有一个异步方法来计算 Future[Option[(String, Int)]]。
因为计算很慢,所以我想开始创建我的视图,当计算完成后完成构建视图。
在同一个控制器中,我有一个调用此方法并加载传递结果的视图的操作,如下所示:
def max = Action.async {
calculateMax.flatMap(result =>
Future{Ok(recommendationsystem.views.html.manager.statistics.max(result))
)
}
我的最大视图是这样实现的:
@(max: scala.concurrent.Future[Option[(String, Int)]])
@import util._
@recommendationsystem.views.html.main("Max tag")(recommendationsystem.views.html.nav.navbar("statistics")) {
<h1>Most used tag</h1>
@max flatMap {result => result match {
case Some(x) => {
<p>
<ul>
<li>Tag: @x._1</li>
<li>Occurrencies: @x._2</li>
</ul>
</p>
}
case None => {
<p>No one tag present in the db</p>
}
}
}
<p><a href="@recommendationsystem.controllers.manager.routes.StatisticsController.index()"></a> </p>
}
但是这段代码不能编译,编译器给我以下编译错误:
[error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/views/manager/statistics/max.scala.html:8: ')' expected but 'case' found.
[error] case Some(x) => {
[error] ^
[error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/views/manager/statistics/max.scala.html:18: ')' expected but 'case' found.
[error] case None => {
[error] ^
[error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/views/manager/statistics/max.scala.html:26: ';' expected but ',' found.
[error] <p><a href="@recommendationsystem.controllers.manager.routes.StatisticsController.index()"></a> </p>
[error] ^
[error] three errors found
[error] /Users/alberto/git/bdrim/modules/recommendation-system/target/scala-2.11/twirl/main/recommendationsystem/views/html/manager/statistics/max.template.scala:27: ')' expected but 'case' found.
[error] """),_display_(/*7.6*/max),format.raw/*7.9*/(""" """),format.raw/*7.10*/("""flatMap """),format.raw/*7.18*/("""{"""),format.raw/*7.19*/("""result => result match """),format.raw/*7.42*/("""{""")/*8.5*/case Some(x) =>/*8.20*/ {_display_(Seq[Any](format.raw/*8.22*/("""
[error] ^
[error] /Users/alberto/git/bdrim/modules/recommendation-system/target/scala-2.11/twirl/main/recommendationsystem/views/html/manager/statistics/max.template.scala:36: ')' expected but 'case' found.
[error] """)))}/*18.5*/case None =>/*18.17*/ {_display_(Seq[Any](format.raw/*18.19*/("""
[error] ^
[error] /Users/alberto/git/bdrim/modules/recommendation-system/target/scala-2.11/twirl/main/recommendationsystem/views/html/manager/statistics/max.template.scala:40: ';' expected but ',' found.
[error] """)))},format.raw/*23.5*/("""}"""),format.raw/*23.6*/("""
[error]
似乎视图看不到 Future 类型。 怎么了??
【问题讨论】:
标签: html scala asynchronous playframework