4

我正在尝试将 2 个绑定片段合并为一个,而无需使用 englobing 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]]

这怎么可能 ?

谢谢 :)

4

1 回答 1

4

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))
于 2017-04-28T10:18:25.593 回答