Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
播放框架Javascript路由器不适用于不同目录中的控制器_Javascript_Scala_Playframework 2.0 - Fatal编程技术网

播放框架Javascript路由器不适用于不同目录中的控制器

播放框架Javascript路由器不适用于不同目录中的控制器,javascript,scala,playframework-2.0,Javascript,Scala,Playframework 2.0,这个问题关注的是让Play的javascript路由器不那么冗长的方式 我的路由文件中有两个路由映射: GET /attachments/:id/content com.application.controllers.File.getOrderContent(id:String) POST /drive com.application.controllers.myapp.Drive.createDrive() 我在sca

这个问题关注的是让Play的javascript路由器不那么冗长的方式

我的路由文件中有两个路由映射:

GET     /attachments/:id/content      com.application.controllers.File.getOrderContent(id:String)

POST    /drive                        com.application.controllers.myapp.Drive.createDrive()
我在scala文件中有非详细的Javascript路由器代码:

val routeCache = {
  import routes._
  val jsRoutesClass = classOf[routes.javascript]
  val controllers = jsRoutesClass.getFields().map(_.get(null))
  controllers.flatMap { controller =>
    controller.getClass().getDeclaredMethods().map { action =>
        action.invoke(controller).asInstanceOf[play.core.Router.JavascriptReverseRoute]
    }
  }
}

def javascriptRoutes = Action { implicit request =>
    Ok(Routes.javascriptRouter("jsRoutes")(routeCache:_*)).as("text/javascript")
}
当我使用时,我得到一个“未捕获的TypeError:无法读取未定义的属性'Drive'

jsRoutes.com.application.controllers.myapp.Drive.createDrive().ajax({...
鉴于

jsRoutes.com.application.controllers.File.getOrderContent().ajax({…工作fine


有没有想过为什么路由器无法识别com.application.controllers.myapp.Drive路径?我以为routes目录中的所有路径都会包含在jsRoutes中。

有一个routes对象,每个包生成一个javascript。因此,在您的情况下,您将拥有
控制器。(routes | javascript)
包含包
controllers
中控制器的所有控制器路由,以及一个单独的
controllers.myapp.(routes | javascript)
用于
controllers.myapp

您可以在
target/scala-[version]/src\u managed/main/controllers/routes.java
target/scala-[version]/src\u managed/main/controllers/myapp/routes.java
下找到生成的源代码