【发布时间】:2012-08-30 18:44:52
【问题描述】:
我使用的是 Play 2.0.2,但在一个特定的视图模板设置中存在隐式参数问题。我会尽我所能描述它,但它并不完全是微不足道的,所以对于任何混淆,我提前道歉。
这个问题的核心是一个我称之为“片断”的模板。 piece 采用以下参数:
@(piecesData: objects.PiecesDataRequest)(implicit content: Html)
内容参数是隐式的,因为我从另一个模板以及控制器调用此模板。我找不到将“空”Html 从控制器显式传递给片段模板的方法,但是如果我隐式传递内容参数,它就可以工作。使用片段的模板是“pieceUploadModal”,它采用以下参数:
@(piecesData: objects.PiecesDataRequest,
pieceData: objects.PieceDataRequest, dialogTitle: String)
并像这样调用片段:
@pieces(piecesData){ [Html] }
现在我想添加第二个隐式参数来改变它的参数列表:
@(piecesData: objects.PiecesDataRequest)(implicit content: Html, user: User)
然后我假设我也需要更改 pieceUploadModal 模板参数:
@(piecesData: objects.PiecesDataRequest,
pieceData: objects.PieceDataRequest, dialogTitle: String)(implicit user: User)
一切顺利……但是,我收到了一个不太有用的错误:
pieceUploadModal.template.scala:24: not enough arguments for method apply:
(implicit content: play.api.templates.Html,
implicit user: models.User)play.api.templates.Html in object pieces.
[error] Unspecified value parameter user.
[error] """),_display_(Seq[Any]
(/*3.2*/views/*3.7*/.html.content.pieces(piecesData)/*3.39*/
{_display_(Seq[Any] (format.raw/*3.40*/("""
几个小时以来,我一直试图让它以多种不同的方式工作,并进行了多次互联网搜索,但均无济于事。任何帮助将不胜感激。
作为最后一条信息,我将补充一点,我在这里使用的传递用户的范例隐式地适用于我所有其他 不 使用隐式 Html 参数的模板,即我相信这是问题的症结所在。
【问题讨论】: