[英]How to keep StatefulSnippet var values when redirecting through Javascript
我有一個圖像鏈接,當我單擊它時,我想對某些類變量進行一些更改,然后重定向到其他頁面並使用這些值。
這是我的代碼,即時通訊使用StatefulSnippet
class MySnippet extends StatefulSnippet {
var selectedStudent: Student=null
def students =
".tabla" #> studentsList.map { s =>
"#id" #> s.Id &
"#name" #> s.Name &
"#surname" #> s.Surname &
"#buttonAcademic [src]" #> tickUrl &
".clickableAcademic [onclick]" #> SHtml.onEvent(onClickCallbackAcademic(s))
}
def onClickCallbackAcademic(student: Student,xhtml:NodeSeq)(s: String): JsCmd = {
//makes some stuff to student
selectedStudent = student
JsCmds.RedirectTo("/Academic")
}
}
但是,當我重定向到另一個頁面時,我的var selectedStudent為null,我嘗試調試,並且selectedStudent具有正確的值,但是在重定向時它將變為null。 有任何想法嗎?
StatefulSnippet使用HTML表單和隱藏參數將信息(應使用哪個片段實例)傳遞到Lift的服務器端。
因此,JS重定向將不起作用,因為它不會傳遞這些信息。
我想到了一些在這種情況下可能有效的解決方案:
在您的onClickCallbackAcademic中包裝表單並由JS提交。
代替使用StatefulSnippet,使用SessionVar存儲您的selectedStudent,這樣您就可以在不提交表單的情況下使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.