This is a plugin for Xitrum that provides some convenient helpers to work with Knockout.js.
Edit your Xitrum project's build.sbt:
libraryDependencies += "tv.cntt" %% "xitrum-ko" % "1.8.1"
See Knockout.js demo in the project xitrum-demos.
Assume that you are using Scalate template engine.
1.
Include Knockout's JS files (knockout.js and knockout.mapping.js) to your template:
import xitrum.Knockout
!= Knockout.js
2.
In the template, call helpers that you want to use:
Knockout.applyBindingsCs(RVTodoList.get, classOf[TodosSave], """
$('#new_todo_form').submit ->
if $('#new_todo_form').valid()
desc = $('#new_todo_desc').val()
$('#new_todo_desc').val('')
todo = {done: false, desc: desc}
model.todos.push(ko.mapping.fromJS(todo))
false
$('#save').click(sync)
""")
Cs
in applyBindingsCs
means that you will give the helper a CoffeeScript snippet. If you want to use JS, use applyBindingsJs
.
Helpers:
applyBindingsCs(model: AnyRef, syncActionClass: Class[_ <: Action], cs: String)
applyBindingsCs(model: AnyRef, scopeSelector: String, syncActionClass: Class[_ <: Action], cs: String)
applyBindingsJs(model: AnyRef, syncActionClass: Class[_ <: Action], js: String)
applyBindingsJs(model: AnyRef, scopeSelector: String, syncActionClass: Class[_ <: Action], js: String)