標籤:cas script option library efault over error ddt redirect
JavaScript
Xitrum包含jQuery,有一些 jsXXX輔助方法
1. 添加JavaScript程式碼片段到View中
在action中,調用jsAddToView添加JS代碼(可以多次調用)
class MyAction extends AppAction { def execute() { ... jsAddToView("alert(‘Hello‘)") ... jsAddToView("alert(‘Hello again‘)") ... respondInlineView(<p>My view</p>) }}
在 layout 中,調用jsForView:
import xitrum.Actionimport xitrum.view.DocTypetrait AppAction extends Action { override def layout = DocType.html5( <html> <head> {antiCsrfMeta} {xitrumCss} {jsDefaults} </head> <body> <div id="flash">{jsFlash}</div> {renderedView} {jsForView} </body> </html>)
2. 沒有View的情況下,直接響應返回JavaScript
由JavaScript發出響應,使用jsRespond
jsRespond("$(‘#error‘).html(%s)".format(jsEscape(<p class="error">Could not login.</p>)))
重新導向
jsRedirectTo("http://cntt.tv/")jsRedirectTo[LoginAction]()JSON
Xitrum包含JSON4S(一個JSON抽象文法分析樹)。Scala case對象和JSON字串的轉換樣本:
import xitrum.util.SeriDesericase class Person(name: String, age: Int, phone: Option[String])val person1 = Person("Jack", 20, None)val json = SeriDeseri.toJson(person1)val person2 = SeriDeseri.fromJson[Person](json)
響應返回JSON:
val scalaData = List(1, 2, 3) // An examplerespondJson(scalaData)
Knockout.js外掛程式
在 build.sbt檔案中配置 libraryDependencies += "tv.cntt" %% "xitrum-ko" % "1.7",就可以在項目中使用Knockout JS了
參考 https://github.com/xitrum-framework/xitrum-ko
Xitrum學習筆記08 - JavaScript and JSON