Javascript 如何将脚本传递到main.scala.html-播放!2.

Javascript 如何将脚本传递到main.scala.html-播放!2.,javascript,templates,scala,parameters,playframework,Javascript,Templates,Scala,Parameters,Playframework,我试图将特定于页面的javascripts作为参数传递给主模板。这就是我尝试过的: main.scala.html: @(title: String,moreScripts: Html)(content: Html) <!DOCTYPE html> <html> <head> <title>@title</title> <link rel="stylesheet" media="scre

我试图将特定于页面的javascripts作为参数传递给主模板。这就是我尝试过的:

main.scala.html:

@(title: String,moreScripts: Html)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
        @moreScripts
    </head>
    <body>
        @content
    </body>
</html>
@main("Test",<script src="javascripts/test/test.js" type="text/javascript"></script>) {
        <h1>Test</h1>
}
@(标题:字符串,更多脚本:Html)(内容:Html)
@头衔
@更多脚本
@内容
test.scala.html:

@(title: String,moreScripts: Html)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
        @moreScripts
    </head>
    <body>
        @content
    </body>
</html>
@main("Test",<script src="javascripts/test/test.js" type="text/javascript"></script>) {
        <h1>Test</h1>
}
@main(“测试”){
试验
}
但是我得到了一个
类型不匹配;找到:scala.xml.Elem必需:play.api.templates.Html
错误。我还尝试将
语句包装在
@{}
中,但没有成功


我需要如何构造
语句,以便将该语句识别为HTML?

这已在上讨论过。希望有帮助

@main{ <script src="javascripts/test/test.js" type="text/javascript"></script> } {
   <h1>Test</h1>
}
@main{}{
试验
}

我也在努力解决这个问题,但这似乎对我有用:

main.scala.html:

@(title: String, moreScripts: Html = Html(""))(content: Html)
<!DOCTYPE html>
<html>
  <head>
   <title>@title</title>
   @moreScripts
  </head>
  <body>
   @content
  </body>
</html>
@moreScripts = { <script src="routes.Assets.at("javascripts/MyJS.js")"></script>}

@main("Page Title", moreScripts) {
  <h1>Some content here</h1>
}
@(标题:String,moreScripts:Html=Html(“”)(内容:Html)
@头衔
@更多脚本
@内容
test.scala.html:

@(title: String, moreScripts: Html = Html(""))(content: Html)
<!DOCTYPE html>
<html>
  <head>
   <title>@title</title>
   @moreScripts
  </head>
  <body>
   @content
  </body>
</html>
@moreScripts = { <script src="routes.Assets.at("javascripts/MyJS.js")"></script>}

@main("Page Title", moreScripts) {
  <h1>Some content here</h1>
}
@moreScripts={}
@主页(“页面标题”,更多脚本){
这里有一些内容
}

当然,您的Javascript文件应该位于
app/assets/javascripts
,作为标准Javascript或Coffeescript文件

我从邮件列表中添加了代码片段。关键是大括号将脚本元素强制转换为Html。如果需要传递多个脚本呢?假设您想要传递2个样式表和其他变量?