我正在尝试在服务器和客户端之间共享案例类。我在两端都使用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/

10-10 05:29