【发布时间】:2017-02-09 11:02:59
【问题描述】:
我正在使用带有 Scala 的 Play 框架。我面临一个奇怪的错误,无法弄清楚解决方案是什么。错误信息是:
value Track 不是对象 controllers.routes.javascript 的成员
<script type="text/javascript" src="@routes.TrackController.javascriptRoutes"></script>
@helper.javascriptRouter("jsRoutes")(
routes.javascript.Track
)
def Track(id:Long)= Action {implicit request =>
Ok(views.html.track(
new TrackData(TrackClient.getTrack(id))))
}
def javascriptRoutes = Action { implicit request =>
Ok(
Routes.javascriptRouter("jsRoutes") (routes.javascript.TrackController.Track)).as("text/javascript")
}
#JavaScriptRouting
GET /track/:id @controllers.TrackController.Track(id: Long)
GET /javascriptRoutes @controllers.TrackController.javascriptRoutes
新的错误是:
1@(message: String)
2
3@main("Welcome to Play 2.1") {
4
5 @play20.welcome(message)
6
7}
第 3 行的 index.scala.html。在此处找不到任何 HTTP 请求标头
上面写着 index.scala 但我从未更改过它。
【问题讨论】:
-
哦,您上面粘贴的部分是在
main模板中?那么所有调用@main的模板都需要第二个参数列表(implicit request: RequestHeader)。这里是@(message: String)(implicit request: RequestHeader)。 edit:所有调用这些模板的控制器都需要在Action开头的implicit request =>。 -
好的,非常感谢 =) 我现在还有一些其他错误,我会尝试解决它们
-
我还有一个关于我的测试的问题,现在我如何在我的测试中实现这些更改(隐式请求:RequestHeader)
-
还有@supertrackGraph(data.graph) 这行说在这里找不到任何http请求头
-
有一个FakeRequest 可以在测试控制器或视图时使用,例如
view.html.index(<params>)(FakeRequest())。对于您的其他错误,是否在视图中调用了@supertrakGraph(...)?然后那个人也需要一个隐式请求
标签: scala playframework