几天来,我一直在使用 Play 2.0 框架作为我工作中的概念验证应用程序。我想检查的第一件事是自定义标记功能,因为它让我想起了 ASP.Net MVC 中的 HtmlHelpers。问题是我似乎无法让它们工作,并且想知道我是否在滥用该功能或误解了某些东西。
这是我想做的一个简单示例:我希望能够在模板中的任何位置使用 @script("scriptname.js") 并用它替换整个标签。
这是我到目前为止得到的:
main.scala.html
@(title: String, scripts: Html = Html(""))(content: Html)
@import tags._
<!DOCTYPE html>
<html>
<head>
<!-- this is how I would like to use the helper/tag -->
@script("jquery.js")
@script("jquery-ui.js")
<!-- let views add their own scripts. this part is working OK -->
@scripts
</head>
<body>
@content
</body>
</html>
我在 app/views 目录下创建了一个名为“tags”的子目录。在那里我创建了我的 script.scala.html 标签/帮助文件:
@(name: String)
<script src="@routes.Assets.at("javascripts/@name")" type="text/javascript"></script>
我遇到的问题是,每当我使用 @script() 时,输出中都会包含 @name 参数。例如 @script("x.js") 实际输出
<script src="assets/javascripts/@name" type="text/javascript"></script>
我究竟做错了什么?
作为记录,我确实阅读了文档并在这里搜索,但这些链接都没有帮助我解决这个问题:
http://www.playframework.org/documentation/2.0.3/JavaTemplateUseCases