首先,我对 Web 应用程序开发的整个领域都是全新的,所以如果我的问题看起来真的很琐碎,请原谅(我对 HTML/JavaScript/CSS/jQuery/AJAX 的了解非常有限,但我很想学习)。
我目前正在使用带有scala的playframework 2.2.0开发一个 Web 应用程序。我需要一个页面上的日历模块,所以在网络上进行了一些研究后,我偶然发现了我在 1.6.4 版中使用(或尝试使用)的fullcalendar 。
现在我遇到的问题是我需要以某种方式将日历回调的参数传递dayClick
给我的控制器。我在网上搜索了如何做到这一点,发现我应该使用javascriptRouter
play 提供的。现在,在每个示例中,所使用的方法都是无参数的,我似乎无法让它与我的带参数的控制器方法一起使用。
是我无法为带参数的方法创建反向路由并以这种方式传递值,还是我遗漏了什么?
如果不可能,将参数从日历传递到我的 scala 控制器方法的最佳方法是什么?
我已经在 github 上看到了看似流行的 fullcalendar 示例,但是使用这些隐藏的表单对于我认为应该是一个相当简单的任务的事情来说似乎很痛苦(而且我真的不明白实际提交这些表单的代码在哪里)
我的实现:
object Application extends Controller {
def javascriptRoutes = Action { implicit request =>
import routes.javascript._
Ok(Routes.javascriptRouter("jsRoutes")
(routes.javascript.CalendarInteraction.day)).as("text/javascript")
}
}
在路线:
POST /day/{date} controllers.CalendarInteraction.day(date: String)
在日历交互中:
def day(Day: String) = Action {
println(Day) //just for testing
Ok(views.html.interaction(Day)) //Also just for debugging
}
我尝试从这个回调中获取值:
dayClick: function(date, allDay, jsEvent, view) {
calendar.fullCalendar('gotoDate', date);
calendar.fullCalendar('changeView',"agendaDay");
$.ajax("/day/"+date); // does not work
//HOW???
}