Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scalajs项目中使用Javascript库_Javascript_Scala_Scala.js_Cross Build - Fatal编程技术网

如何在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
    
  • 现在我要导入此库:

  • 我想运行以下函数:

    Plotly.newPlot('myDiv',数据)

  • 我该怎么做

    js文件夹中的My Main.scala文件如下所示:

    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我用一个更现实的例子使问题更简单、更具体,不清楚,请让我知道。