JavaScript and JSON =================== JavaScript ---------- Xitrum đã inlcude jQuery. Có một vài jsXXX helper. Thêm các đoạn JavaScript vào một view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Trong action, gọi method ``jsAddToView`` (nhiều lần nếu cần): :: class MyAction extends AppAction { def execute() { ... jsAddToView("alert('Hello')") ... jsAddToView("alert('Hello again')") ... respondInlineView(

My view

) } } Trong layout, gọi method ``jsForView``: :: import xitrum.Action import xitrum.view.DocType trait AppAction extends Action { override def layout = DocType.html5( {antiCsrfMeta} {xitrumCss} {jsDefaults}
{jsFlash}
{renderedView} {jsForView} ) Respond JavaScript trực tiếp không sử dụng view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Để respond JavaScript: :: jsRespond("$('#error').html(%s)".format(jsEscape(

Could not login.

))) Đổi hướng: :: jsRedirectTo("http://cntt.tv/") jsRedirectTo[LoginAction]() JSON ---- Xitrum đã include `JSON4S `_. Bạn có thể đọc thêm để biết các parse và generate ra JSON. Để convert từ Scala case object thành JSON string và ngược lại: :: import xitrum.util.SeriDeseri case 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) Để respond JSON: :: val scalaData = List(1, 2, 3) // An example respondJson(scalaData) JSON cũng thuận tiện cho các tệp cấu hình cần tới các cấu trúc lồng nhau: Xem :doc:`Load config files `. Plugin cho Knockout.js ---------------------- Xem https://github.com/xitrum-framework/xitrum-ko