我正在尝试将 2 个绑定(bind)片段合并为一个片段,而不求助于 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]]
这怎么可能?
谢谢:)
最佳答案
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))
关于html - 如何在不将绑定(bind)片段包装在 XML 文字中的情况下组合绑定(bind)片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43675301/