여기 튜토리얼을 따르고 있습니다.
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
a를받습니다 String
. 따라서 다음과 같은 것이 필요합니다.
@js.native
@JSGlobal
object Plotly extends js.Object {
def newPlot(id: String, data: js.Array[PlotData]) = js.native
}
이제 우리는 그것이 무엇인지를 지정해야합니다 PlotData
. Plotly
인터페이스를 지정하고 실제 객체가 JS로 구현 되는 객체 의 유형과 달리이 유형은 Scala에서 구현되므로이 가이드 를 따라야 합니다 .
A의 scatter
유형 플롯, 그것과 같이 볼 수 있었다 :
case class PlotData(
x: js.Array[Double],
y: js.Array[Double]
) extends js.Object {
def type: String = "scatter"
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다