在index-dev.html我加载本地JavaScript文件:
<script type="text/javascript" src="map.js"></script>
Run Code Online (Sandbox Code Playgroud)
map.js 结构上(不是字面意思)看起来像这样:
var a2b = {
"a": "My life closed twice before its close—",
"b": "It yet remains to see",
"c": "If Immortality unveil",
"d": "A third event to me",
"e": "So huge, so hopeless to conceive",
"f": "As these that twice befell.",
"g": "Parting is all we know of heaven,",
"h": "And all we need of hell.",
"z": "Emily Dickinson, 1830-1886"
}
Run Code Online (Sandbox Code Playgroud)
我想出了如何将此对象加载到Scala.js:
val a2b = js.Dynamic.global.a2b
Run Code Online (Sandbox Code Playgroud)
现在a2b是类型Dynamic.我想要的是Map[String,String] …
我正在使用:
import scala.collection.JavaConverters._
import scala.collection.Set
Run Code Online (Sandbox Code Playgroud)
这有效:
val a: java.util.HashSet[java.lang.Long] = javaFunction(...)
val b: Set[java.lang.Long] = a.asScala.toSet
Run Code Online (Sandbox Code Playgroud)
但我想要的是一个Set[Long],而不是一个Set[java.lang.Long].当我尝试这个:
val a: java.util.HashSet[java.lang.Long] = javaFunction(...)
val b: Set[Long] = a.asScala.toSet
Run Code Online (Sandbox Code Playgroud)
我明白了:Expression of type scala.collection.immutable.Set[java.lang.Long] doesn't conform to expected type scala.collection.Set[Long].
为什么这样,我怎么得到Set[Long]?
我必须在其 MANIFEST.MF 中部署一个具有非常特定类路径的 JAR。我将如何配置 sbt 以便打包的 JAR 具有这个特定的类路径(例如):
.
lib/abc.jar
lib/xyz.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-annotations/2.2.3/jackson-annotations-2.2.3.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-core/2.2.3/jackson-core-2.2.3.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-databind/2.2.3/jackson-databind-2.2.3.jar
../../lib/maven/commons-codec/commons-codec/1.9/commons-codec-1.9.jar
../../lib/maven/commons-io/commons-io/2.4/commons-io-2.4.jar
../../lib/maven/joda-time/joda-time/2.5/joda-time-2.5.jar
../../lib/maven/log4j/log4j/1.2.11/log4j-1.2.11.jar
../../lib/database/SQLServer2008/3.0.1301.101/sqljdbc4.jar
Run Code Online (Sandbox Code Playgroud)
(当然,真正的将包括 Scala。)
我有一个Scala PlayFramework函数调用MongoDB并获得 Future[Seq[Document]]结果.在地图缩放/平移事件之后,Action通过xhttp/GET从网页上的JavaScript调用此Play 功能.Play侧的My Action方法在onComplete/Success执行Future之前返回.所以我正在寻找一种方法来调用JavaScript函数来获取Scala Future的onComplete/Success触发时的数据.我该怎么做,还是我看错了?
这是有问题的代码.
def rect(swLon: Float, swLat: Float, neLon: Float, neLat: Float) = Action {
val sb = new StringBuilder()
sb.append("<tt>boundingBox: swLon=" + swLon + ", swLat=" + swLat + ", neLon=" + neLon + ", neLat=" + neLat + "</tt>")
if (oDb.isDefined) {
val collection: MongoCollection[Document] = oDb.get.getCollection(collectionName)
val fut = getFutureOne(collection) // returns a Future[Seq[Document]]
fut onComplete {
case Success(docs) => { for (doc <- docs) { setMongoJson(doc.toJson } …Run Code Online (Sandbox Code Playgroud)