最近,我发现引导程序的导入在我的代码中是不可访问的。也就是说,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()时,我收到error:alert is not a function,尽管我验证了引导程序确实定义了它。
如何使引导和播放很好地结合在一起?
发布于 2015-09-23 14:01:35
问题来自于@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依赖项。由于无法在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() = { ... }
}https://stackoverflow.com/questions/32741742
复制相似问题