通过 ajax 在同一页面上播放框架呈现 HTML 和值
Play framework render HTML & values on same page via ajax
我在 play (scala) 框架内使用 ajax 在页面上发生点击事件后 运行 一些代码。我想 return 在同一页面上执行该代码的结果。
编辑:这样做的目的是显示数据库中的一些行,以及要填写的表单元素以更新数据库的单元格,所有这些都不需要reloading/or转到新页面
有没有办法将 html + (scala) 值传递给
Ok(...).as(HTML)
显示而不指向新页面?
我知道 Ok 可以接受这样的事情:
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);
}
当然可以。您可以使用 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))
我在 play (scala) 框架内使用 ajax 在页面上发生点击事件后 运行 一些代码。我想 return 在同一页面上执行该代码的结果。
编辑:这样做的目的是显示数据库中的一些行,以及要填写的表单元素以更新数据库的单元格,所有这些都不需要reloading/or转到新页面
有没有办法将 html + (scala) 值传递给
Ok(...).as(HTML)
显示而不指向新页面?
我知道 Ok 可以接受这样的事情:
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);
}
当然可以。您可以使用 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))