我在play(scala)框架中使用ajax在页面上发生click事件后运行一些代码。我想在同一页面上返回代码执行的结果。
编辑:这样做的目的是显示数据库中的一些行,以及填写更新数据库单元格的表单元素,所有这些都无需重新加载/或转到新页面
有没有办法将html +(scala)值传递到
Ok(...).as(HTML)
显示而不指向新页面?
我知道好的可以采取以下措施:
Ok(<h1>it works</h1>).as(HTML)
但我无法弄清楚如何将其与scala值结合起来。有更聪明的方法吗?
编辑:ajax看起来像这样:var ajaxCall = function() {
var ajaxCallBack = {
success : onSuccess,
error : onError
}
jsRoutes.controllers.Application.scrape().ajax(ajaxCallBack);
};
var onSuccess = function(data) {
$("#results").append(data);
}
var onError = function(error) {
alert(error);
}
答案 0 :(得分:1)
当然可以。您可以使用TWIRL模板:
创建模板“views / Application / contacts.scala.html
@(users: List[User])
<h1>Users</h1>
<ul>
@for(user <- users) {
<li>@user.name</li>
}
</ul>
在控制器中:
Ok(views.html.Application.contacts(users))