如何在Scalajs项目中使用Javascript库

有限差异

我在这里关注教程:

https://www.scala-js.org/doc/project/dependencies.html

  1. 首先,我的项目设置如下:

https://github.com/scala-js/scalajs-cross-compile-example

在不进行任何更改的情况下,当我传递以下命令时,它将按预期运行:

sbt> fooJS/run
sbt> fooJVM/run
  1. 现在我要导入该库:

  2. 我想运行以下功能:

    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

但老实说,我不会遵循来自不同语言生态系统的那些步骤。

马蒂亚斯·伯恩特(Matthias Berndt)

“我不遵循这些步骤”对描述您遇到的问题不是有用的方法。

看起来很明显,您需要做什么。有一个名为的全局对象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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Android库项目中使用匕首

如何在Java项目中使用Kotlin库?

如何在Gradle项目中使用Trove4j库

如何在正常的sbt项目中使用play ws库而不是play?

如何在Intellij项目中使用SBT libraryDependencies安装库

如何在Elixir项目中使用开源Erlang库?

SBT:如何在scala 2.12项目中使用scala 2.11库

如何在Android Studio项目中使用特定的外部库查找哪些文件

在纯PHP项目中如何在composer中使用下载的库?

如何在esy项目中使用带有rtop的扣脚本库?

如何在项目中使用Angular库中的服务

如何在.net Core项目中使用SignalR Core监听Postgresql数据库?

如何在AOSP项目中使用预建的c ++静态/共享库

如何在共享的Razor类库项目中使用授权名称空间?

如何在C ++项目中使用Swift静态库(.a)?

我如何在C#项目中使用LightStreamer DotNetStandard库

如何在C ++项目中使用共享动态库?

我如何在核心php项目中使用Zend框架数据库类-

如何在不基于gradle构建的android项目中使用ShowcaseView库?

如何在项目中使用Printf

如何在Maven项目中使用ASM库

如何在橡皮筋项目中使用Makefile.ios创建静态库

如何在scalajs项目中的“ Build.scala”中导入“ %%%”?

如何在Android主项目中包含库项目中使用的AAR文件

如何在laravel项目中使用多个数据库连接?

如何在 Vue.js cli 项目中使用外部 Javascript 库?

如何在 angular 6 项目中使用 javascript npm?

如何在类库项目中使用 AspNetCore 3.0 特性/组件

如何在我的整个项目中使用 phpdotenv 库?