避免在来自 HTML 的 Scala.js 调用中重复包名称
Avoid repeating package names in Scala.js calls from HTML
我在 HTML 页面中使用了很多这样的调用来调用我的 Scala.js 代码:
<table
id="history"
onclick="my.domain.project.name.ObjectName().handlerFunction(event.target)"
>
<script type="text/javascript">
my.domain.project.name.ObjectName().otherFunction()
</script>
有什么方法可以避免重复输入包名,比如 Scala / Java imports?我想在我的 Scala 源代码中保留包名称,因为我也为 JVM 交叉编译它们并且不想在那里遇到包冲突。
有两种解决方法。第一个有点类似于 Scala 导入,在 JavaScript:
中完成
var ObjectName = my.domain.project.name.ObjectName;
ObjectName().otherFunction();
另一种是专门用更短的名字导出ObjectName
,在Scala.js:
中完成
package my.domain.project.name
import scala.scalajs.js.annotation._
@JSExport("ObjectName")
object ObjectName { ... }
然后在 JavaScript:
ObjectName().otherFunction();
我在 HTML 页面中使用了很多这样的调用来调用我的 Scala.js 代码:
<table
id="history"
onclick="my.domain.project.name.ObjectName().handlerFunction(event.target)"
>
<script type="text/javascript">
my.domain.project.name.ObjectName().otherFunction()
</script>
有什么方法可以避免重复输入包名,比如 Scala / Java imports?我想在我的 Scala 源代码中保留包名称,因为我也为 JVM 交叉编译它们并且不想在那里遇到包冲突。
有两种解决方法。第一个有点类似于 Scala 导入,在 JavaScript:
中完成var ObjectName = my.domain.project.name.ObjectName;
ObjectName().otherFunction();
另一种是专门用更短的名字导出ObjectName
,在Scala.js:
package my.domain.project.name
import scala.scalajs.js.annotation._
@JSExport("ObjectName")
object ObjectName { ... }
然后在 JavaScript:
ObjectName().otherFunction();