如何在Scalajs项目中使用Javascript库
我在这里学习教程:如何在Scalajs项目中使用Javascript库,javascript,scala,scala.js,cross-build,Javascript,Scala,Scala.js,Cross Build,我在这里学习教程: 首先,我的项目设置如下: 在不进行任何更改的情况下,当我传入以下命令时,它将按预期运行: sbt> fooJS/run sbt> fooJVM/run 现在我要导入此库: 我想运行以下函数: Plotly.newPlot('myDiv',数据) 我该怎么做 js文件夹中的My Main.scala文件如下所示: package example object Main extends App { println(s"Using Scala.
sbt> fooJS/run
sbt> fooJVM/run
package example
object Main extends App {
println(s"Using Scala.js version ${System.getProperty("java.vm.version")}")
}
我知道这个库的外观已经存在,但我希望能够为未来的项目创建我自己的外观,并以此为例。我在这里阅读了教程:
但老实说,我不会遵循来自不同语言生态系统的这些步骤。用“我不会遵循这些步骤”来描述您遇到的问题不是一个有用的方法 你需要做的事情看起来相当明显。有一个名为
Plotly
的全局对象,它有一个名为newPlot
的方法,该方法接受一个字符串和一个包含数据的对象数组。所以你需要这样的东西:
package example
object Main extends App {
println(s"Using Scala.js version ${System.getProperty("java.vm.version")}")
}
@js.native
@JSGlobal
对象以绘图方式扩展js.object{
def newPlot(id:String,data:js.Array[PlotData])=js.native
}
现在我们有了它,我们还需要指定PlotData
应该是什么样子。与Plotly
对象的类型不同,在该类型中,我们仅指定接口,而实际对象是在JS中实现的,这种类型将在Scala中实现,因此您需要遵循
对于散点图
类型图,它可能如下所示:
案例类绘图数据(
x:js.Array[Double],
y:js.Array[Double]
)扩展js.Object{
定义类型:String=“散布”
}
“但是这失败了”。它是如何失败的?你试了什么?你在哪里运行了什么命令?你期待什么,结果是什么?帮助我们帮助你。进一步阅读:抱歉,我应该说得更清楚些——我会更新原文post@sjrd我用一个更现实的例子使问题更简单、更具体,不清楚,请让我知道。