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

tra*_*ega 2 javascript parameters templates scala playframework

我试图将特定于页面的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>
Run Code Online (Sandbox Code Playgroud)

test.scala.html:

@main("Test",<script src="javascripts/test/test.js" type="text/javascript"></script>) {
        <h1>Test</h1>
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个type mismatch; found : scala.xml.Elem required: play.api.templates.Html错误.我也尝试将<script>声明包装@{}无济于事.

如何构造<script>语句以便将语句识别为HTML?

msu*_*ung 6

这已在邮件列表中讨论过.希望有所帮助.

@main{ <script src="javascripts/test/test.js" type="text/javascript"></script> } {
   <h1>Test</h1>
}
Run Code Online (Sandbox Code Playgroud)

  • 我从邮件列表中添加了代码段.关键是花括号将脚本元素强制转换为Html. (2认同)