如何更改或向现有BlobPropertyBag添加值

时间:2018-08-10 11:36:46

标签: scala.js

一些JavaScript函数采用的options参数可以在Scala.js中创建,如下所示:

js.Dynamic
  .literal(
    "onload" -> onloadHandler _,
    "filename" -> s"myFileName.txt"
  )
  .asInstanceOf[BlobPropertyBag]

在一个API中,我可以调用一个函数以获取一些设置作为BlobPropertyBag(我认为是),但是需要更改或合并一些值,以后再使用设置。

是否可以使用这些值?将它们转换为String或JSON或Scala.js中可用的东西?

我应该在外观中使用其他类型来读取这些值吗?

1 个答案:

答案 0 :(得分:0)

如果BlobPropertyBag是用var字段声明的,显然,您可以简单地分配其字段。但是,由于它是declared with defs,所以您必须作弊:将其投射回js.Dynamic才能更改其字段之一:

def foo(bag: BlobPropertyBag): Unit = {
  val mutableBag = bag.asInstanceOf[js.Dynamic]
  mutableBag.type = "another type"
  // use `bag` afterwards
}