2015-02-09 41 views
6

我想在服務器和客戶端之間共享案例類。我在兩端使用upickle。對象及其數據在兩端都很好地提供。如何導出共享案例類的屬性

共享類

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

但是我需要導出在客戶端的情況下類的字段。我可以添加@ExportAll註釋,但這意味着拉入服務器項目的scalajs庫。

是否有更好的方式將成員id和標題暴露給javascript。

TX,

回答

8

的東西出口到JavaScript的正確的方法是使用@JSExportAll註解。儘管如此,你不能,也不應該拉動服務器項目上的Scala.js庫。對於這種使用情況下,我們有一個專門的JVM神器,scalajs-stubs,您可以添加到您的JVM的項目是這樣的:

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

作爲「規定」的依賴,就不會出現在運行時。但是它將允許您編譯JVM項目,即使它參考了JSExportAll。請參閱the ScalaDoc of scalajs-stubs