我的案例类中数据字段的参数数量会动态变化。
那么,Var
是否也可以绑定Binding.scala中的js.Array
?
我尝试使用代码但没有成功:
case class Data(d: Var[js.Array[String]])
val data = Vars.empty[Data]
{
for (x <- data) yield {
val y: js.Array[String] = x.d.bind
y.zipWithIndex.foreach{case (v, i) => <th>{ y(i) }</th>}
}
}
答案 0 :(得分:2)
我可以将它带到ScalaFiddle上。
实质上,您必须将每个数组或选项放在Constants对象中,例如:
@dom
def render = {
val bindData= data.bind
<div>
{Constants(bindData: _*)
.map(a => dataElem(a))
.map(_.bind)}
</div>
}
应该有:
val bindData= data.bind
<div>
放置Constants(bindData: _*)
.map(a => dataElem(a))
.map(_.bind)
所以你逐级下去。
答案 1 :(得分:1)
来自Binding.scala: Strategy to avoid too many dom-tree updates并且必须提到直接对Vars的绑定与理解相比是缓慢的。
你应该始终使用Vars
进行理解,除非你正在做一些必须在整个列表上工作的聚合。
对于您的示例,我创建了一个更新的ScalaFiddle:https://scalafiddle.io/sf/7lCiigL/0