我的case类中数据字段的参数数量是动态变化的。
那么,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>}
}
}发布于 2018-03-21 04:31:09
我可以把它带到ScalaFiddle上工作。
本质上,您必须将每个数组或选项放在一个常量对象中,例如:
@dom
def render = {
val bindData= data.bind
<div>
{Constants(bindData: _*)
.map(a => dataElem(a))
.map(_.bind)}
</div>
}它应该有:
使用每个data- Element:.map(a => dataElem(a))
.map(_.bind)将
<div>中所以你一层一层地往下走。
发布于 2018-05-16 16:29:19
来自Binding.scala: Strategy to avoid too many dom-tree updates,不得不提一下,与理解相比,直接绑定到Vars上是很慢的。
你应该总是使用Vars上的理解,除非你正在做一些必须在整个列表上工作的聚合。
对于您的示例,我创建了一个更新的ScalaFiddle:https://scalafiddle.io/sf/7lCiigL/0
https://stackoverflow.com/questions/49119278
复制相似问题