【问题标题】:Avoid repeating package names in Scala.js calls from HTML避免在来自 HTML 的 Scala.js 调用中重复包名称
【发布时间】:2016-05-12 22:12:15
【问题描述】:

我在 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 交叉编译它们并且不想在那里遇到包冲突。

【问题讨论】:

    标签: javascript scala scala.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      相关资源
      最近更新 更多