这是基于GitHub上的scala-js-example-app。
我有一个要在Javascript中定义的函数,而Scala.js库尚未定义该函数。
在我的ScalaJSExample.scala文件副本中,我有:
object Mine extends js.Object {
def foobarfoo():String = ??? //this is just a simple example and I know this can be done completely in Scala, but just go with it.
}
object ScalaJSExample extends js.JSApp {
def main(): Unit = {
val paragraph = dom.document.createElement("p")
paragraph.innerHTML = "<strong>It works!" + Mine.foobarfoo() + ".</strong>"
dom.document.getElementById("playground").appendChild(paragraph)
}
/** Computes the square of an integer.
* This demonstrates unit testing.
*/
def square(x: Int): Int = x*x
}
现在,我想在Javascipt中定义foobarfoo。
我试着在javascript文件中编写此代码:
function foobarfoo() { return "Hello, World!"; }
那没有用,所以我尝试了更多的Scala.js语法:
var Mine = {
foobarfoo: function() { return "Hello, World!"; }
}
以及其他许多变体,但这些变体均无济于事,我无法获得“ Hello,World!” 编译后出现在网页上。
我应该如何写foobarfoo()以获得正确的结果?
继续讨论,问题是包含顺序:OP在Scala.js代码之后添加了自定义JavaScript函数:
<script type="text/javascript" src="./target/scala-2.11/example-opt.js"></script>
<script type="text/javascript" src="./target/scala-2.11/example-launcher.js"></script>
<script type="text/javascript" src="src/main/scala/example/myscript.js"></script>
因此,找不到请求的函数。把myscript.js
顶端解决这个问题:
<script type="text/javascript" src="src/main/scala/example/myscript.js"></script>
<script type="text/javascript" src="./target/scala-2.11/example-opt.js"></script>
<script type="text/javascript" src="./target/scala-2.11/example-launcher.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句