7

汎用テンプレートを作成することは可能ですか?

擬似コード:

@(myForm: Form[T])

したがって、次のように再利用できます。

@inputText(
                myForm("title"), 
                '_label -> "title"

            )
  • はいの場合、どうすればよいですか?
4

3 に答える 3

4

@(form: Form[_])タイプセーフを窓の外に投げ出すので、私はこのアプローチが好きではありません。

を渡すと、テンプレートを使用するok(form.render(userform))ときにコンパイラからの助けは得られませんが、テスト中にキャッチされない場合は実行時エラーが発生します。@form("lastNme")

私が行っているのは、一般的なフォーム (例: メンバーシップのサインアップと会議への登録、またはリーグの統計とチームの統計など) のインターフェイス (または play 2 scala の特性) を提供することです。そうすれば、コンパイル時に太い指のタイプミスなどをキャッチできます。

はい、対処するボイラープレートが増えますが、フェンスの動的言語側から来ると、実行時エラーを処理する必要が少ないほど良いです...

于 2012-08-24T19:10:29.170 に答える
2

試しましたか?

app/viewsパッケージで新しいバイを作成します。pseudo.scala.html

@(someParam: String)
<h1>This is my pseudo template</h1>
<div>And there is some param: <b>@someParam</b></div>

次に、他のビューでは、次のように使用できます。

...
<div>@pseudo("param pam pam")</div>
...

もちろん、param(s) は only である必要はありませStringん。Form[T]List[T]

于 2012-08-24T18:08:35.653 に答える