2013-10-23 105 views
1

首先,我對web應用程序開發的全部領域都很陌生,所以請原諒我的問題看起來是否真的很微不足道(我對HTML/JavaScript/CSS/jQuery/AJAX的知識非常有限,但我是想要學習)。帶參數的JavascriptRouter方法

我目前正在開發一個Web應用程序,使用 2.2.0和。我需要一個頁面上的日曆模塊,所以經過在網絡上的一些研究後,我偶然發現了我在1.6.4版本中使用(或嘗試使用)的

現在我遇到的問題是我需要以某種方式傳遞日曆的回調參數讓我們可以說我的控制器的dayClick事件。我在網上搜索瞭如何做到這一點,發現我應該使用遊戲提供的javascriptRouter。現在無處不在,每個示例中使用的方法都是無參數的,我似乎無法使用帶有參數的控制器方法。

這樣的情況下,我不能創建具有參數的方法的反向路線,並通過值的方式或缺少的東西?

如果不可能,從日曆傳遞參數到我的scala控制器方法的最佳方式是什麼?

我見過the seemingly popular example of fullcalendar with play on github但使用這些隱藏的形式好像什麼東西這麼痛,應該是一個在我看來非常簡單的任務(我也真的不明白的地方的代碼是實際提交這些表格)

我的實現:

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) 

在CalendarInteraction:

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??? 
} 

回答

0

實驗後,我找到了解決我的問題,這是非常簡單的,因爲它橫空出世。

我改變了我的路線:

POST /day/:date    controllers.CalendarInteraction.day(date: String) 

和回調函數:

dayClick: function(date, allDay, jsEvent, view) {    
    calendar.fullCalendar('gotoDate', date); 
    calendar.fullCalendar('changeView',"agendaDay"); 
    jsRoutes.controllers.CalendarInteraction.day(date).ajax(); 
}