我的playframework应用程序中有一个主布局,如:
@(title: String = "Home")(content: Html)
<html>
<body>
..
@content
..
<script type="text/javascript">
</script>
</body>
</html>
现在在使用上述布局的典型页面中,我有:
@layouts.master(title = "About Us") {
<h1>About us</h1>
..
}
现在我希望能够在我的视图页面中创建一个写入javascript,并将其注入javascript <script>...</script>
标记内的主布局。
注意:我希望这是可选的。
答案 0 :(得分:1)
首先修改主布局,以便将一些JavaScript作为参数。
@(title: String = "Home", scripts: Html = Html(""))(content: Html)
<html>
<body>
..
@content
..
<script type="text/javascript">
@scripts
</script>
</body>
</html>
通过为此参数提供默认值,您可以将其设为可选。接下来,您可以在其中一个视图中定义示例脚本,并将其传递给模板,如下所示:
@scripts = {
alert('This is the passed script!');
}
@layouts.master(title = "About Us", scripts) {
<h1>About us</h1>
..
}
此技术在 moreScripts和moreStyles等效部分中为documented。