2014-09-05 3 views
1

자바 스크립트 함수를 스칼라 템플릿을 사용하여 재사용하므로 다른 성공/실패 함수를 전달해야하지만 자바 스크립트 함수를 전달할 수있는 것 같지 않습니다. 자바 스크립트 함수를 스칼라 템플릿에 추가합니다. 나는 새로운 일을하고 있으며, 내가하고있는 일이 가능한지 알지 못한다.Play 프레임 워크 자바 스크립트 함수 (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!"); 
         } 
        ) 

답변

1

당신은 html로 유형을 통해 템플릿 콘텐츠를 전달할 수

내가 달성하기 위해 노력하고있어의 종류이다.

@successFunc = { 
    alert("Save successfull, now move on!"); 
} 

@failureFunc = { 
    alert("Save failed!"); 
} 

@snippets.ajaxFormSubmit("#form", successFunc, failureFunc) 
+0

이 컴파일되지 않습니다 : 찾을 수 없습니다 값 successFunc을 클라이언트에서

@(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> 

는 사용자가 다음과 같이 할 수 있습니다 볼 수 있습니다. –

+0

어떤 버전의 Play를 사용하고 있습니까? 쇼케이스에서 모든 것을 복사 했습니까? –

+0

successFunc 및 failureFunc 선언이 다른 코드 블록에 배치되지 않았는지 확인하십시오. –