먼저, 당신은 당신의 보드 클래스에서 HTML을 생성하는 방법을 알아야합니다. 서버에서
, scala.XML 클라이언트에서
,
그런 다음 클라이언트에서 호출 할 수있는 아약스 서버 측 함수를 만드는 자바 스크립트 : 두 가지 선택이 있습니다 :
def render = {
import JsCmds._
var board = initBoard()
def moveAction(s: String): JsCmd = {
val moveXY = parseXY(s) // s should be like "{x: 1, y: 2}"
board = move(board, moveXY) // your logic here
val newBoardToSend = boardToCmd(board) // generate board HTML or json here
Call("renderBoard", newBoardToSend) // call the client-side render function
}
val script = S.fmapFunc(S.contextFuncBuilder(moveAction _)) { funcName => {
val func = JsRaw("'" + funcName + "='") + Call("encodeURIComponent", LiftRules.jsArtifacts.jsonStringify(JsRaw("{x:x,y:y}")))
JsCmds.Function(
"moveIt", // the js function name you will call
"x" :: "y" :: Nil,
SHtml.makeAjaxCall(func).cmd
)
}} // generate a client ajax function: function moveIt(x, y)
yourRenderXml ++ <tail>{JsCmds.Script(script)}</tail>
}
마지막으로 "re nderBoard (b) "를 사용하여 페이지에 게시 할 수 있습니다. 클라이언트가 클릭하여 움직이면 "moveIt (x, y)"를 호출하십시오
안녕하세요 iron9light, 정말 고마워요! 좀 더 도움을 요청할 수 있습니까? 승강기는 나에게 매우 혼란 스럽다. 내 이메일 : [email protected] – user1137701
여기를 클릭하거나 [포럼] (https://groups.google.com/forum/#!forum/liftweb) – iron9light