まず第一に、私は Web アプリケーション開発のドメイン全体にまったく慣れていないので、私の質問が本当に些細なことのように思われる場合はご容赦ください (HTML/JavaScript/CSS/jQuery/AJAX の知識は非常に限られていますが、学びたいと思っています)。
現在、 playframework 2.2.0 とscalaを使用して Web アプリケーションを開発しています。1 つのページにカレンダー モジュールが必要だったので、Web で少し調べた後、バージョン 1.6.4 で使用している (または使用しようとしている) fullcalendarに出くわしました。
今私が経験している問題は、どうにかしてカレンダーのコールバックのパラメーターを渡して、dayClick
イベントをコントローラーに伝える必要があることです。これを行う方法についてウェブを検索したところ、javascriptRouter
提供されたプレイを使用する必要があることがわかりました。現在、すべての例で使用されているメソッドはパラメーターなしであり、パラメーターを取るコントローラーメソッドで動作するようには見えません。
パラメータを持つメソッドの逆ルートを作成できず、その方法で値を渡すことができないのですか、それとも何か不足していますか?
また、それが不可能な場合、カレンダーから scala コントローラー メソッドにパラメーターを渡す最良の方法は何ですか?
github での play を使用した 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)
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???
}