什么scalajs相当于每页javascript?

时间:2017-03-21 16:56:41

标签: scala playframework scala.js

假设我已经有一个播放应用程序,有三个或四个页面,每个页面底部都有一个单独的javascript脚本文件。

例如

   <script src="@routes.Assets.versioned("javascripts/detailsPage.js")" type="text/javascript"></script>

每个都包含一些特定的行为--jquery事件,或该页面的EventSource侦听器,这在其他页面上是不必要的。 (事件来源不在每一页上)。

前进,我想尝试一下scalajs。但是这会生成一个脚本文件,该文件希望包含在所有页面中。我并不担心开销 - javascript文件将被缓存。

但是,构建我的scalajs的等效方式是什么,以便我可以在每个页面中包含适当的行为?

1 个答案:

答案 0 :(得分:0)

我不知道这里的规范答案是什么,但最终做了以下事情:

每个“脚本”都在一个具有单个@JSExportTopLevel(需要scalajs 0.6.15或更高版本)功能的对象中声明:

@JSExportTopLevel("enhancedFrobnication")
def main(): Unit = {
}

然后将完整的scalajs文件包含在main方法中,并在包含该文件后,在短<script>个部分中打开特定的功能位:

    <script type="text/javascript">enhancedFrobnication();</script>