![](/img/trans.png)
[英]Play Framework: How to call a Javascript Function from a Scala Template
[英]Play framework JavaScript function as scala template parameter
我想使用scala模板重用javascript函數,因此我只需要傳遞不同的成功/失敗函數,但我似乎無法將javascript函數傳遞給scala模板。 請注意,我是新手,甚至不知道我在做什么。
這是我想要達到的目的:
@(formId: String, success: JavaScript, fail: JavaScript)
<script type="text/javascript">
$("@formId").submit(function(e)
{
var data = $(this).serializeArray();
var action = $(this).attr("action");
$.ajax(
{
url : action,
type: "POST",
data : data,
success:function(data, textStatus, jqXHR) // Change contents to dynamic parameter for scala??? perhaps a javascript function to execute???
{
@success()
/*console.log("save succesfull, progress!")
alert('Save successfull, now move on!');*/
},
error: function(jqXHR, textStatus, errorThrown) // Change contents to dynamic parameter for scala??? perhaps a javascript function to execute???
{
//if fails
@fail()
/*console.log(jqXHR.responseText);
var errors = JSON.parse(jqXHR.responseText);
console.log(errors);
alert('Woops, something went wrong: ' + jqXHR.responseText);*/
}
});
e.preventDefault();
});
</script>
如何使用:
@snippets.ajaxFormSubmit("#form",
function()
{
alert("Save successfull, now move on!");
},
function()
{
alert("Save failed!");
}
)
您可以通過HTML類型將任何內容傳遞到模板。
@(formId: String, success: Html, fail: Html)
<script type="text/javascript">
$("@formId").submit(function(e)
{
var data = $(this).serializeArray();
var action = $(this).attr("action");
$.ajax(
{
url : action,
type: "POST",
data : data,
success:function(data, textStatus, jqXHR) // Change contents to dynamic parameter for scala??? perhaps a javascript function to execute???
{
@success
},
error: function(jqXHR, textStatus, errorThrown) // Change contents to dynamic parameter for scala??? perhaps a javascript function to execute???
{
@fail
}
});
e.preventDefault();
});
</script>
在客戶端視圖中,可以按以下方式使用它:
@successFunc = {
alert("Save successfull, now move on!");
}
@failureFunc = {
alert("Save failed!");
}
@snippets.ajaxFormSubmit("#form", successFunc, failureFunc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.