这是我的代码:
class Application extends Controller {
import play.api.mvc._
import play.api.routing._
def javascriptRoutes = Action { implicit request =>
Ok(
JavaScriptReverseRouter("jsRoutes")(routes.javascript.ProcessController.retrieveAllProcess)
).as("text/javascript")
}
}
这是muy路线文件:
GET /javascriptRoutes controllers.Application.javascriptRoutes
GET /Process/All controllers.ProcessController.retrieveAllProcess
这是html.scala文件:
var option =
{ "url" : @routes.javascript.ProcessController.retrieveAllProcess,
...
}
非常感谢你:)。
答案 0 :(得分:1)
我认为你将javascript路由与反向路由混淆。
Javascript路由旨在生成javascript代码。生成的代码定义了可以在javascript中用于在客户端生成URL的函数。由于您已定义了一个返回生成代码的Action,因此您可以使用
将其包含在页面中<script type="text/javascript" src="@routes.Application.retrieveAllProcess()"></script>
请注意,这使用反向路由来告诉html页面应该将哪个URL用于脚本。 :)
然后在您的javascript代码中可以像这样使用
var retrieveAllProcessRoute = jsRoutes.controllers.Application.retrieveAllProcess()
生成包含HTTP动词和Application::retrieveAllProcess
方法网址的javascript对象。
反向路由用于生成scala代码。此代码用于生成视图中的URL或Redirects
到服务器端的控制器方法。
由于您正在谈论模板(*.html.scala
),所以您在讨论服务器方面的问题。这意味着您应该使用Play的反向路由功能。下面我重写了您的javascript模板代码段以使用反向路由:
var option = {
"url": @routes.Application.retrieveAllProcess,
...
}