2016-12-06 2 views
0

프런트 엔드에 스칼라 플레이 프레임 워크 + 스칼라 템플릿 엔진을 사용하고 있습니다. 단추 처리기를 추가하려면 어떻게합니까? 그것을 클릭 할 때 어떤 함수를 호출해야합니다. 스칼라/재생/버튼 클릭을 처리 할 것 돌리기에 거기에 아무것도스칼라 플레이 프레임 워크에서 버튼 핸들러를 추가하는 방법은 무엇입니까?

<body> 
    <p>Database interface<br /> 
     <textarea style="margin: 0px; height: 193px; width: 533px;" cols="40" name="comment" rows="3"></textarea> 
    </p> 
    <p><input type="submit" value="Select" /> <input type="submit" value="Insert" /> <input type="submit" value="Update" /></p> 
</body> 

답변

5

특별한 버튼 핸들러가 없습니다를 사용하는 것입니다. Javascript 또는 일반 HTML로 작성할 수 있습니다. 유일한 트릭은 서버 기능에 대한 링크를 얻는 것입니다. 너는 reverse routing에 의하여 자동적으로 연결을 얻을 수 있는다.

는 예를 들어, 당신은 다음 코드에서 controllers.routes.CountController.count를 호출하여 링크를 얻을 수있는 경로를

GET  /count      controllers.CountController.count 

있습니다.

템플릿 엔진에서

에게 링크 :

<a href="@controllers.routes.CountController.count">Count</a> 

일반 HTML 버튼 : 자바 스크립트와

<form action="@controllers.routes.CountController.count"> 
    <input type="submit" value="HTML only" /> 
</form> 

버튼 :

<input type="submit" onclick="location.href='@controllers.routes.CountController.count';" value="Javascript" /> 

당신은 클라이언트 측에서 어떤 특별한 일을해야하는 경우 처리하려면 Javascript로 코드를 작성해야합니다.

+0

감사합니다. Twirl에 OOB 버튼 핸들러가 있다고 생각했습니다. –

+0

'@ controllers.routes.CountController.count'가 변수를 가져온다면 말하자면, 텍스트 영역에서 어떻게 그 변수를 전달하겠습니까? – HaydenKai

+0

해당 변수를 전달할 수 없습니다. '@ controllers.routes.CountController.count'는 HTML을 클라이언트에 반환하기 전에 서버에서 처리됩니다. '텍스트 영역 '의 데이터는 클라이언트에 있습니다. –

0

, 가장 간단한 방법은 jQuery .click()

+0

흥미로운 점은 출처로 답을 구체화 할 수 있었습니까? 이 문제는 몇 분 전에 있었는데 왜' KGCybeX

+0

@KGCybeX javascript의 매개 변수가있는 javascript ajax 호출에서 "@CSRF (routes.MyApp.register())"를 사용하려면 어떻게해야합니까? F.x. 일부 자바 스크립트에서 : var type = 1; ... $ .ajax ({url : "@CSRF (routes.MyApp.register (type))", ...}) ;. 여기서 컴파일러는 "유형"이 자바 스크립트 대신 스칼라에서 온다고 생각합니다. –

관련 문제