bootstrap 的 PlayScalaJS 不工作
PlayScalaJS with bootstrap not working
我最近发现我的代码无法访问 bootstrap 的导入。也就是说,jQuery 的插件警报在我的代码中不可用(jQuery.fn.alert
未定义)。我在 header:
<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 中:
<body>
@playscalajs.html.scripts("client")
</body>
在客户端脚本中,当它调用 $("...").alert()
时,我收到 error: alert is not a function
,虽然我验证了 bootstrap 确实定义了它。
如何让 bootstrap 和 playscalajs 很好地协同工作?
问题出在@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
脚本之后交错 bootstrap 导入,因此我使用以下代码延迟了主要对象的执行:
// 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() = { ... }
}
我最近发现我的代码无法访问 bootstrap 的导入。也就是说,jQuery 的插件警报在我的代码中不可用(jQuery.fn.alert
未定义)。我在 header:
<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 中:
<body>
@playscalajs.html.scripts("client")
</body>
在客户端脚本中,当它调用 $("...").alert()
时,我收到 error: alert is not a function
,虽然我验证了 bootstrap 确实定义了它。
如何让 bootstrap 和 playscalajs 很好地协同工作?
问题出在@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
脚本之后交错 bootstrap 导入,因此我使用以下代码延迟了主要对象的执行:
// 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() = { ... }
}