diff --git a/src/main/scala/example/HtmlBindingExample.scala b/src/main/scala/example/HtmlBindingExample.scala
index 10fe6d6..3cc21ec 100644
--- a/src/main/scala/example/HtmlBindingExample.scala
+++ b/src/main/scala/example/HtmlBindingExample.scala
@@ -5,7 +5,7 @@ import com.thoughtworks.binding.Binding.{BindingSeq, Constants, Var}
import com.thoughtworks.binding.bindable._
import org.lrng.binding.html
import org.lrng.binding.html.NodeBinding
-import org.scalajs.dom.raw.{Event, Node}
+import org.scalajs.dom.raw.{Event, HTMLDivElement, Node}
import scala.xml.{Elem, NodeBuffer}
@@ -33,6 +33,17 @@ class HtmlBindingExample extends IDEHelpers {
@html def simpleBinding =
This static tag will be transformed into a Binding[Node]
+ case class Bus(noPassengers: Int, color: String)
+ case class Truck(cargo: Int, color: String)
+ @html def worksWithTemplates[T](t: T): NodeBinding[HTMLDivElement] =
+ {
+ t match {
+ case Bus(_, c) => s"The bus is $c"
+ case Truck(_, c) => s"The truck is $c"
+ case _ => s"Unknown type: $t"
+ }
+ }
+
/**
* This render method combines Binding[Node] values that are declared in this class.
* Bindings can be easily composed inside HTML tags.
@@ -42,6 +53,8 @@ class HtmlBindingExample extends IDEHelpers {
@html def render() = {
{simpleBinding}
+ {worksWithTemplates(Bus(4, "red"))}
+ {worksWithTemplates(Truck(2000, "black"))}
{changingBinding}
{noHtmlMacroNecessary}
{sequenceBinding}