gpt4 book ai didi

scala - Play 框架模板没有 Html 类型

转载 作者:行者123 更新时间:2023-12-04 16:19:18 25 4
gpt4 key购买 nike

我有一个名为 mainBody 的模板与形式:

@(title: String)(html: Html, moreScripts: Html = Html(""))

我可以这样称呼
views.html.mainBody("All properties")(views.html.showProperties(list))
views.html.showProperties()是另一个模板。我的印象是模板只是返回 Html 的函数。 .但是,如果我将其扩展为:
views.html.mainBody("All properties")(views.html.showProperties(list), views.html.showPropertiesScripts)

哪里 views.html.showPropertiesScripts只是一个带有一些 HTML 代码的模板,我收到错误:
play.PlayExceptions$CompilationException: Compilation error[type mismatch;
found : views.html.showPropertiesScripts.type
required: play.twirl.api.Html]
at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
at scala.Option.map(Option.scala:145) ~[scala-library-2.11.2.jar:na]
at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:234) ~[na:na]
at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:229) ~[na:na]

我不明白这个。而不是预期的类型 Html , views.html.showPropertiesScriptsviews.html.showPropertiesScripts.type ?这是什么以及为什么是 views.html.showPropertiesScripts不是类型 Html (就像我的其他模板一样)?

最佳答案

像这样使用 mainBody.scala.html :

@(title: String, moreScripts: Html = Html(""))(html: Html)
<!DOCTYPE html>
<html>
<head lang="en">
<title>@title</title>
@moreScripts
</head>
<body>
@html
</body>
</html>

风景:
@(list: List[YourType])

@moreScripts = {
<script>alert ('it works')</script>
}

@mainBody(title = "All properties", moreScripts = moreScripts) {
@showProperties(list)
}

moreScripts是可选的,您可以在另一个 View 中跳过它:
@(list: List[YourType])

@mainBody(title = "Other view") {
@showProperties(list)
}

关于scala - Play 框架模板没有 Html 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com