Scala JavaScript路由播放框架

编程入门 行业动态 更新时间:2024-10-28 04:26:39
本文介绍了Scala JavaScript路由播放框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在Scala中使用Play框架.我遇到一个奇怪的错误,无法解决该怎么办.错误消息是:

I'm using Play framework with Scala. I'm facing a weird error and can't figure out what's the solution. The error message is:

value Track不是对象controllers.routes.javascript

value Track is not a member of object 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}

index.scala.html第3行.在此处找不到任何HTTP请求标头

index.scala.html at line 3. Cannot find any HTTP Request Header here

它显示index.scala,但我从未更改过.

It says index.scala but I have never changed it.

推荐答案

您的JavaScript路由定义为:

Your javascript route is defined as:

GET /javascriptRoutes controllers.TrackController.javascriptRoutes

编辑:在routes.javascript下,播放对javascript使用了特殊的反向路由.

Edit: play uses a special reverse route for javascript, under routes.javascript.

因此您的反向控制器将位于controllers.routes.javascript.TrackController.Track:

so your reverse controller will be at controllers.routes.javascript.TrackController.Track:

@helper.javascriptRouter("jsRoutes")( routes.javascript.TrackController.Track )

您还需要在模板中提供隐式RequestHeader.因此,请在模板的开头添加:

You also need to make an implicit RequestHeader available in your template. So add at the beginning of your template:

@(implicit request: RequestHeader)

或者如果您已经具有模板参数:

Or if you already have template parameters:

@(<your parameters>)(implicit request: RequestHeader)

并确保它在控制器的Action中可用:

And make sure it is available in your controller's Action:

def myController = Action { implicit request => // <-- request is a RequestHeader // ... Ok(views.html.myView) }

如果从另一个视图(比如说index)中调用了该视图(我们称它为main),那么index同样也需要一个隐式的RequestHeader参数,以便能够将其向下传递到main.

If that view (let's call it main) is called from within another view (let's say index), then index also needs an implicit RequestHeader parameter as well, to be able to pass it down to main.

更多推荐

Scala JavaScript路由播放框架

本文发布于:2023-07-11 17:14:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1094803.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由   框架   Scala   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!