首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Binding.scala中使用数组作为可绑定变量

在Binding.scala中使用数组作为可绑定变量
EN

Stack Overflow用户
提问于 2018-03-06 04:52:31
回答 2查看 179关注 0票数 0

我的case类中数据字段的参数数量是动态变化的。

那么,Var还可以在Binding.scala中绑定js.Array吗?

我尝试了下面的代码,但没有成功:

代码语言:javascript
复制
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>}
  }
}
EN

回答 2

Stack Overflow用户

发布于 2018-03-21 04:31:09

我可以把它带到ScalaFiddle上工作。

本质上,您必须将每个数组或选项放在一个常量对象中,例如:

代码语言:javascript
复制
  @dom
  def render = {
      val bindData= data.bind
      <div>
        {Constants(bindData: _*)
           .map(a => dataElem(a))
           .map(_.bind)}
      </div>
    }

它应该有:

使用每个data- Element:.map(a => dataElem(a))

  • Bind each result:.map(_.bind)

  • 数组绑定到常量

  • <div>

所以你一层一层地往下走。

票数 2
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49119278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档