1

Play 2.0.2を使用していますが、特定のビューテンプレート設定の暗黙的なパラメーターに問題があります。できる限り説明しますが、些細なことではないので、ご迷惑をおかけしましたことをお詫び申し上げます。

この問題の中心は、私が「ピース」と呼んでいるテンプレートです。ピースはこれらのパラメータを取ります:

@(piecesData: objects.PiecesDataRequest)(implicit content: Html)

このテンプレートを別のテンプレートおよびコントローラーから呼び出しているため、contentパラメーターは暗黙的です。「空の」Htmlをコントローラーからピーステンプレートに明示的に渡す方法を見つけることができませんでしたが、コンテンツパラメーターを暗黙的に渡すと機能します。pieceを使用するテンプレートは、次のパラメーターを受け取る「pieceUploadModal」です。

@(piecesData: objects.PiecesDataRequest, 
  pieceData: objects.PieceDataRequest, dialogTitle: String)

そして、このようにピースを呼び出します:

@pieces(piecesData){ [Html] }

次に、パラメータリストも変更する2番目の暗黙的なパラメータをピースに追加します。

@(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パラメーターを使用していない他のすべてのテンプレートで暗黙的に機能することを追加します。つまり、これが問題の核心であると思います。 。

4

1 に答える 1

0

「空の」HTMLをコントローラーからピーステンプレートに明示的に渡す方法が見つかりませんでした

空のHTMLはで渡すことがHtml("")でき、デフォルト値として定義することもできます。

しかし、結局のところ、コンパイラに耳を傾ける必要があります-それは決して嘘をつきません。あなたのコメントから、これがあなたがあなたのテンプレートをどのように定義したかであると私は理解します:

(piecesData: controllers.objects.PiecesDataRequest)(content: play.api.templates.Html)(implicit user: models.User)

これがあなたの呼び方です:

views.html.content.pieces(PiecesDataRequest( Piece.getPiecesForContentFeed(contentFeedID), contentFeedID), Html(""))

3つの親を定義しますが、呼び出しているのは2つだけです。このようにしてください:

Ok(
   views.html.content.pieces(
       PiecesDataRequest(Piece.getPiecesForContentFeed(contentFeedID), contentFeedID))(Html(""))
   )
)
于 2012-08-30T20:15:36.020 に答える