2012-09-17 27 views
8

Estoy intentando hacer llamadas ajax utilizando jsRoutes en el marco de juego. Funciona bien para solicitudes que no toman ningún parámetro, pero cuando trato de llamar a un método de controlador que toma un Long como parámetro, falla sin mensaje de error. Aquí hay un código para explicarlo mejor.Uso de rutas de JavaScript en Play Framework 2

controlador de clase Users.java:

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

conf/rutas

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

En el archivo controlador Application.java Puedo devolver el jsRoutes así:

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())); 
} 

Ahora, en mi javascript Puedo usar jsRoutes haciendo lo siguiente:

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);    
      } 
     }); 

parece que el esta funcionalidad del marco de juego no está bien documentado, o tal vez sólo soy ciego para no encontrar en cualquier lugar ...

Gracias por cualquier ayuda!

Respuesta

5

Ok, calculé el problema yo solo. El problema parecía ser que utilicé long (primitivo) en el método del controlador. Por qué este es un problema que no sé

+0

Este es un problema con Play que he encontrado: https://play.lighthouseapp.com/projects/82401-play-20/tickets/756 – InPursuit