diff --git a/src/main/scala/com/gilt/handlebars/scala/helper/HelperOptionsBuilder.scala b/src/main/scala/com/gilt/handlebars/scala/helper/HelperOptionsBuilder.scala index 16cb7e0..ebf28c5 100644 --- a/src/main/scala/com/gilt/handlebars/scala/helper/HelperOptionsBuilder.scala +++ b/src/main/scala/com/gilt/handlebars/scala/helper/HelperOptionsBuilder.scala @@ -54,6 +54,8 @@ trait HelperOptions[T] { */ def inverse(binding: Binding[T], extraData: Map[String, Binding[T]]): String + def hasInverse: Boolean + /** * Look up a path in the the current context. The one in which the helper was called. * @param path The path to lookup in the context. e.g., ../name @@ -111,6 +113,8 @@ class HelperOptionsBuilder[T](context: Context[T], } } + val hasInverse = inverseNode.isDefined + def lookup(path: String): Binding[T] = { HandlebarsGrammar.path(path).map { identifier => context.lookup(identifier, Seq()).binding diff --git a/src/main/scala/com/gilt/handlebars/scala/helper/IfHelper.scala b/src/main/scala/com/gilt/handlebars/scala/helper/IfHelper.scala index 14e09ee..c8df30e 100644 --- a/src/main/scala/com/gilt/handlebars/scala/helper/IfHelper.scala +++ b/src/main/scala/com/gilt/handlebars/scala/helper/IfHelper.scala @@ -8,6 +8,7 @@ class IfHelper[T] extends Helper[T] with Loggable { if (options.argument(0).isTruthy) options.visit(binding) else - options.inverse(binding) + if (options.hasInverse) options.inverse(binding) + else "" } }