播放框架Javascript路由器不工作的控制器在不同的目录
Play framework Javascript router not working for controller in different directory
这个问题是关于让Play的javascript路由器
生成play2的简洁方法's javascript router
我的路由文件中有两个路由映射:
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")
}
当我使用
时,我得到一个"未捕获的类型错误:无法读取未定义的属性'Drive'"jsRoutes.com.application.controllers.myapp.Drive.createDrive().ajax({...
与
jsroutes.com.applicationcontrollers . file . getordercontent ().ajax({… works fine。
对于为什么com.application.controllers.myapp.Drive路径不能被路由器识别有什么想法吗?我认为路由目录中的所有路径都应该包含在jsRoutes中。
每个包生成一个one routes对象和一个javascript。所以在你的情况下,你会有controllers.(routes|javascript)
包含所有的控制器路径controllers
包中的控制器和controllers.myapp
中的单独的controllers.myapp.(routes|javascript)
您可以在target/scala-[version]/src_managed/main/controllers/routes.java
和target/scala-[version]/src_managed/main/controllers/myapp/routes.java
下找到生成的源代码
相关文章:
- 为什么ng控制器不调用或工作或功能不工作
- AngularJS控制器不工作,为什么?(简单的控制器示例)
- 角度控制器功能赢得'不按指令工作
- console.log在角度控制器内不工作
- 角度控制器功能不;在指令内部调用时,似乎无法始终如一地工作
- 如何使Angular JS控制器与指令一起工作
- AngularApp中的多个控制器不工作
- 具有范围变量的控制器不工作
- 角度指令和属性Don'在控制器内创建和设置时无法工作
- AngularJS控制器没有'第一次刷新页面后无法工作
- 包含ngMock时控制器不工作
- 部分html视图's控制器未使用KendoPanelBar内容URL在指令模板URL中工作
- 在第三个控制器中使用时RootScope不工作
- angularJS-当我添加ngRoute时,控制器停止工作
- ng-显示无法从控制器工作
- extjs setLoading()不能从控制器工作
- 如何让这个AngularJS控制器工作($scope变量没有在控制器中初始化)
- NodeJS Express req.params,enrouten控制器工作不正常
- 我如何使ui-router控制器工作
- $emit from子控制器工作,但是$broadcast from父控制器不起作用