1

我最近发现在我的代码中无法访问 bootstrap 的导入。即,jQuery 的插件警报在我的代码中不可用(jQuery.fn.alert未定义)。我在标题中:

<script src="@routes.Assets.at("lib/jquery/jquery.min.js")" 
  type="text/javascript"></script>

<script src="@routes.Assets.at("lib/bootstrap/js/bootstrap.min.js")" 
  type="text/javascript"></script>

在体内:

<body>
    @playscalajs.html.scripts("client")
</body>

在客户端脚本中,当它调用时$("...").alert(),我收到错误alert is not a function,尽管我验证了引导程序确实定义了它。

如何让 bootstrap 和 playscalajs 很好地协同工作?

4

1 回答 1

3

问题来自@playscalajs.html.scripts("client")于这些:

<script src="/assets/client-jsdeps.js" type="text/javascript"></script>
<script src="/assets/client-fastopt.js" type="text/javascript"></script>
<script src="/assets/client-launcher.js" type="text/javascript"></script>

jQuery再次导入,client-jsdeps.js因为它是 scala-js 依赖项。由于我无法在client-launcher.js脚本之前和之后交错引导导入client-jsdeps.js,因此我使用以下代码延迟了主对象的执行:

// New object calling the previous Main object
@JSExport
object MainDelayed extends js.JSApp { 
  @JSExport def main(): Unit = $(document).ready(Main.main _)
}

// The original object
object Main { 
  def main() = { ... }
}
于 2015-09-23T14:01:35.813 回答