【问题标题】:How to create a BindingSeq[T] from a Binding[Seq[T]]如何从 Binding[Seq[T]] 创建 BindingSeq[T]
【发布时间】:2018-07-24 00:31:35
【问题描述】:

我有一个绑定[Seq[T]]。

我想以一种方式创建 BindingSeq[T],每当我更改 Seq 时,BindingSeq 都会以相同的方式发生变化。

我该怎么做?

【问题讨论】:

  • 你问题的后半部分到底是什么意思?如果您更改存储在第一个变量中的Seq,或者如果您更改可变Seq 本身内部的某些内容,您是否希望BindingSeq 更改?我认为后者是不可能的。
  • Seq 是不可变的。抱歉,应该说清楚。

标签: scala data-binding collections scala.js binding.scala


【解决方案1】:

您可以将Binding[Seq[T]] 转换为BindingSeq[T]

def convert1[T](bindingOfSeq: Binding[Seq[T]]): BindingSeq[T] = {
  Constants(bindingOfSeq).flatMap { bindingOfSeq =>
    Constants(bindingOfSeq.bind: _*)
  }
}

def convert2[T](bindingOfSeq: Binding[Seq[T]]): BindingSeq[T] = {
  SingletonBindingSeq(bindingOfSeq).flatMap { seq =>
    Constants(seq: _*)
  }
}

但是,Seq,如果它是可变 Seq,则没有神奇的数据绑定能力。

当您更改Seq 的内容时,没有任何反应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多