有没有办法将视图B中声明的脚本标记添加到视图A中的脚本列表(调用B)? 下面的例子应该清楚我需要什么。 我有一个基本模板A:
<html>
<head>
<title>@title</title>
<!-- declared stylesheets -->
</head>
<body>
@content
<!-- Java script dependencies -->
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
</body>
</html>
请注意,基本视图声明了对文件末尾的jquery.js和bootstrap.js的依赖关系。除了以下情况外,这是可以的:
@base(title) {
@header()
@navigation()
<div class="container">
@content
</div>}
navigation
视图有一个脚本标记,它依赖于已加载的jquery。
当我加载页面时,我收到一条错误,指出&#34; $符号未定义&#34;这是有道理的,因为在加载jquery之前解析了脚本。
有没有办法在基本视图的末尾(在jquery声明之后)添加navigation
中声明的脚本?
我已经尝试将依赖项移动到jquery到<head></head>
部分,一切都按预期工作,但我想保留当前的布局。
编辑:为了更清楚,我想将脚本依赖项从@navigation视图发送到@base视图。
答案 0 :(得分:0)
查看Play的文档 moreScripts and moreStyles equivalents (文档的最后一部分)
de dacto它deosn不需要命名scripts
所以你可以使用自己的名字,也可以使用它将其他HTML块发送到更高级别的视图(布局)。
<强> See answers to similar quesion 强>
所以它可以是,即:
@navigationScripts = {
<script src="/assets/my-navigation.js"></script>
}
@base(title, navigationScripts) {
@header()
@navigation()
<div class="container">
@content
</div>
}
在布局中:
@(title: String, navigationScripts: Html = null)
<html>
<head>
<title>@title</title>
<!-- declared stylesheets -->
</head>
<body>
@content
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
@navigationScripts
</body>
</html>