避免在HTML中的Scala.js调用中重复包名称

时间:2016-05-12 13:46:29

标签: javascript scala scala.js

我在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导入?我想在我的Scala源代码中保留包名称,因为我也为JVM交叉编译它们,并且不希望在那里遇到包冲突。

1 个答案:

答案 0 :(得分:2)

有两种解决方案。第一个有点类似于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();