How to export properties of shared case classes

眉间皱痕 提交于 2019-12-12 08:32:59

问题


I am trying to share a case class between server and client. I am using upickle on both ends. The objects and their data are nicely available on both ends.

shared class

case class Foo(var id : Long,var title: Description)

However i need to export the fields of the case class on the client side. I could add the @ExportAll annotation, but that means pulling in the scalajs libraries on the server project.

Is there perhaps a better way of exposing the members id and title to the javascript.

tx.,


回答1:


The right way to export things to JavaScript is to use the @JSExportAll annotation. You cannot, and should not, pull the Scala.js libraries on the server project, though. For this use case, we have a dedicated JVM artifact, scalajs-stubs, which you can add to your JVM project like this:

libraryDependencies += "org.scala-js" %% "scalajs-stubs" % scalaJSVersion % "provided"

As a "provided" dependency, it will not be present at runtime. But it will allow you to compile the JVM project even though it references JSExportAll.

See also the ScalaDoc of scalajs-stubs.



来源:https://stackoverflow.com/questions/28413266/how-to-export-properties-of-shared-case-classes

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!