我有一个Play应用程序,包含以下模块:
angular
:封装所有AngularJS内容frontend
:客户面临的事情 angular
模块在build.sbt
文件中定义了webjar依赖关系。另外,我在views
目录中有以下HTML文件:
@(webJarAssets: WebJarAssets)
<script src="@angular.controllers.routes.WebJarAssets.at(webJarAssets.locate("jquery.js"))"></script>
<script src="@angular.controllers.routes.WebJarAssets.at(webJarAssets.locate("angularjs.js"))"></script>
我的控制器看起来像这样:
package angular.controllers
import javax.inject._
import play.api.mvc._
@Singleton
class TestController @Inject() (webJarAssets: WebJarAssets) extends Controller {
def index = Action {
Ok(angular.views.html.test(webJarAssets))
}
}
到目前为止一切顺利,当访问相应的路线时,一切都很好。但是,这不是我想要使用这个模块的方式。
在我的frontend
模块中,我有一个名为main.scala.html
的模板,如下所示:
@(title: String)(content: Html)
<!DOCTYPE html>
<html lang="en">
<head>
@* Here's where we render the page title `String`. *@
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
<script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script>
</head>
<body>
@content
</body>
</html>
现在我希望在angular
之后包含@content
模块模板,该模板封装脚本标记。另外,我想使这个可选,以便我可以传递一个特定的参数,以激活脚本包含。我怎样才能做到这一点?