html - 如何在不将绑定(bind)片段包装在 XML 文字中的情况下组合绑定(bind)片段

标签 html scala dom scala.js binding.scala

我正在尝试将 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/

相关文章:

javascript - jQuery 滚动到 div onclick 不起作用

javascript - 无法从下拉列表中获取用户输入

javascript - 我的 PlayFramework Action 在 Future 准备就绪之前返回,如何更新网页组件?

javascript - 在将 DOM 元素添加到文档之前对其进行操作

javascript - 更改 Div 样式 onclick

html - 当 flexbox 中只有一个元素时居中

javascript - 如何从 ajax 调用响应中附加 html 标签

javascript - Angular2 指令 : How to detect DOM changes

java - 如何在本地安装 Java 7 的情况下将 Play Framework 与 Google App Engine 一起使用?

Scala 元组到字符串(使用 mkString)