2012-09-17 52 views
8

我試圖在播放框架中使用jsRoutes進行ajax調用。它適用於不接受任何參數的請求,但是當我嘗試調用一個將Long作爲參數的控制器方法時,它失敗並且沒有錯誤消息。這裏有一些代碼可以更好地解釋它。在Play Framework中使用javascript路由2

Controller類Users.java:

public static Result addToShortList(long id) { 
return whatever 
} 

的conf /路線

POST /shortList/:userId controllers.Users.addToShortList(userId: Long) 

在Application.java控制器文件我返回jsRoutes這樣的:

public static Result javascriptRoutes() { 
    response().setContentType("text/javascript"); 
    return ok(Routes.javascriptRouter("jsRoutes", 
     controllers.routes.javascript.Application.frontpage(), 
     ... 
     controllers.routes.javascript.Users.addToShortList(), 
     controllers.routes.javascript.Users.removeFromShortList())); 
} 

現在在我的javascript我可以通過執行以下操作使用jsRoutes:

jsRoutes.controllers.Users.addToShortList(id).ajax({ 
      success : function(data) { 

       alert(data); 
      }, 
      error : function(err) { 
       //code always ends up here, with the err giving no eerror message at all! 
       alert(err);    
      } 
     }); 

看來,該劇框架的這個功能是記錄不完整,或者也許我只是盲目的沒有任何地方找到它...

感謝您的幫助!

回答

5

好的,我自己想出了問題。這個問題似乎是我在控制器方法中使用了很長(原始的)。爲什麼這是一個我不知道的問題。

+0

這是我遇到的Play問題:https://play.lighthouseapp.com/projects/82401-play-20/tickets/756 – InPursuit