我正在尝试在服务器和客户端之间共享案例类。我在两端都使用upickle。对象及其数据在两端都可以很好地使用。
共享类(class)
case class Foo(var id : Long,var title: Description)
但是我需要在客户端导出case类的字段。我可以添加
@ExportAll
批注,但这意味着在服务器项目中引入scalajs库。是否有更好的方式将成员ID和标题公开给javascript。
tx。,
最佳答案
将事物导出到JavaScript的正确方法是使用@JSExportAll
批注。但是,您不能也不应拉扯服务器项目上的Scala.js库。对于此用例,我们有一个专用的JVM工件scalajs-stubs
,您可以将其添加到您的JVM项目中,如下所示:
libraryDependencies += "org.scala-js" %% "scalajs-stubs" % scalaJSVersion % "provided"
作为“提供的”依赖项,它将在运行时不存在。但是,即使它引用了
JSExportAll
,它也允许您编译JVM项目。另请参见the ScalaDoc of scalajs-stubs。
关于scala.js - 如何导出共享案例类的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28413266/