我在这里关注教程:
https://www.scala-js.org/doc/project/dependencies.html
https://github.com/scala-js/scalajs-cross-compile-example
在不进行任何更改的情况下,当我传递以下命令时,它将按预期运行:
sbt> fooJS/run
sbt> fooJVM/run
现在我要导入该库:
我想运行以下功能:
Plotly.newPlot('myDiv',数据);
我怎样才能做到这一点?
我的js文件夹中的Main.scala文件如下所示:
package example
object Main extends App {
println(s"Using Scala.js version ${System.getProperty("java.vm.version")}")
}
我知道该库的外观已经存在,但是我希望能够为以后的项目创建自己的外观,并以此为例。我在这里阅读了该教程:
https://www.scala-js.org/doc/interoperability/facade-types.html
但老实说,我不会遵循来自不同语言生态系统的那些步骤。
“我不遵循这些步骤”对描述您遇到的问题不是有用的方法。
看起来很明显,您需要做什么。有一个名为的全局对象Plotly
,该对象具有名为的方法newPlot
,该方法接受String
和一个包含数据的对象数组。所以你需要这样的东西:
@js.native
@JSGlobal
object Plotly extends js.Object {
def newPlot(id: String, data: js.Array[PlotData]) = js.native
}
现在我们有了,我们还需要指定PlotData
应该是什么样子。与Plotly
对象类型不同,在对象类型中我们仅指定接口,而实际对象是在JS中实现的,因此该类型将在Scala中实现,因此您需要遵循本指南。
对于scatter
类型图,它可能看起来像这样:
case class PlotData(
x: js.Array[Double],
y: js.Array[Double]
) extends js.Object {
def type: String = "scatter"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句