我在这里看到了一些类似的问题,但它们都没有真正帮助解决我的问题。
我的页面上有一个表格和一个按钮,需要在单击时重新呈现表格(使用不同的分页参数、排序等)。
我尝试了几种方法,并且成功地将值传递到带有嵌入式 js 路由器的 Controller ,但由于这些值是通过 ajax 调用传递到后端的,所以我无法重新渲染表格。
我的嵌入式路由器如下所示:
@helper.javascriptRouter("jsRoutes")(
routes.javascript.UserController.getUsers
)
我将从页面上调用它,如下所示: $.ajax(jsRoutes.controllers.UserController.getUsers(3, true, "登录"));
现在,最后但并非最不重要的一点是,我想使用 getUsers() 调用的结果重新呈现表格。
只需调用:
public Result getUsers(int size, boolean isAsc, String sortBy) {
......
Logger.info("Returning " + size + " users");
return Results.ok(usersPage.render(userDtos));
}
不适合我。
最佳答案
有几种方法。
最简单的方法是使用一个 Play Controller ,以 HTML 形式呈现表格,然后使用 $('#mytable').load(...) 将其拉到您的页面上。 .
更灵活的是有一个 Play Controller ,它返回 JSON format 中的数据。 ,然后在浏览器中将其转换为 HTML。这可以使用客户端模板引擎(例如 http://handlebarsjs.com/)或使用完整的 JavaScript 框架(如 AngularJS 或 Ember.js)手动完成。
关于java - Play Framework 中 AJAX 调用的部分渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28025606/