我想要创建一个带有可选内容的标签..。假设我有一个标签:
app/views/tags/part.scala.html
@(param: String)(content: Html = null)
@if(content == null) {
@param: Your tag has no content...
} else {
@param: @content
}我想用它来表达我的观点:
@tags.part("foo"){ <b>Good!</b} }或
@tags.part("bar")不幸的是,第二次调用给了我编译错误:
方法的缺失参数适用于对象部分; 如果您想将此方法作为一个部分应用的函数来处理,请使用`_‘
如何在不使用@tags.part("bar"){ }或@tags.part("bar"){_} (并签入标记if body != "_")的情况下传递它?
发布于 2014-11-09 21:38:33
你的电话:
@tags.part("bar")是curry调用-它返回函数应用-而不是对象。
您的代码的解决方案是调用apply函数:
@tags.part("bar")()如果你想打电话:
@tags.part("bar")你应该定义
@(param: String)(implicit content: Html) 并在上下文中定义隐式Html,或定义为
@(param: String,content: Html = null)@tags.part("foo")(Html("<b>Good!</b>")) -什么是容易出错的。
最后一个解决方案的工作是创建方法并调用它:
@good = {<b>Good!</b>}
@tags.part("foo")(good)https://stackoverflow.com/questions/26820059
复制相似问题