如何将绑定片段组合在一起而不将其包裹在XML文字中



我正在尝试将2个绑定片段组合到一个绑定片段中,而无需求助于XML字面的文字。

请参阅以下代码:

@dom def a = <div><p>a</p></div>
@dom def b = <div><p>b</p></div>
@dom def block = {
  // <div>
  {a.bind}
  {b.bind}
  // </div>
}

请参阅Scalafiddle

正如预期的,这不起作用,只显示 b

我在这里寻找的是一种将2个片段组合到一个片段中的方法,例如

combine: Binding[Node] x Binding[Node] -> Binding[BindingSeq[Node]]

怎么可能?

谢谢:(

https://scalafiddle.io/sf/9clgxbn/1

def block = Binding(Constants(a.bind, b.bind))

https://scalafiddle.io/sf/9clgxbn/6

def block = Binding(Constants(a, b).map(_.bind))

后一个能够部分更新,而前者则不是。

BindingSeq

https://scalafiddle.io/sf/9clgxbn/7

@dom def a = <div><p>a</p></div><div>b</div>
@dom def b = <div><p>c</p></div><div>d</div>
def block = Binding(Constants((a.bind.all.bind ++ b.bind.all.bind): _*))

https://scalafiddle.io/sf/9clgxbn/8

def block = Binding(Constants(a, b).flatMap(_.bind))

最新更新