3

私はこのようなフィールドコンストラクターとしてtwitterブートストラップを使用しています


    @import helper.twitterBootstrap._
    @implicitFieldConstructor = @{ FieldConstructor(extra.twitterBootstrapInput.f) }

別のフィールドコンストラクターを追加/使用するにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

3

ハッキングできる可能性はありますが、テンプレートに含めることができるのは 1 つだけです。

まずはコードを理解しましょう。表示するコードは、結果の Scala コードでimplicit呼び出される (名前が Implicit で始まるため) 変数を作成します。fieldConstructorタイプがあるためFieldConstructor (割り当てられた値から自動的に推測されます)、暗黙的なものが必要な場所で使用されFieldConstructorます。

同様の方法で同じ型の別の var を宣言する場所を指定すると、Scala はどの Implicit を使用すればよいかわからなくなり、エラーが発生します。

FieldConstructorつまり、次のように as を明示的に宣言できます。

 @input(field, args:_*)( Htmlcode)(implicitFieldConstructor)

3 番目のパラメーターが明示的に作成されていることに注意してください。

これにより、次のようなコンストラクターをさらに作成できるようになります。

 @implicitAnotherFieldConstructor = @{ FieldConstructor(anotherConstructor) }

警告: 現時点ではこれを完全にテストすることはできませんでしたが、テンプレートの動作を考えると、これしか選択肢がないように思われます。

于 2012-11-27T17:06:02.780 に答える
0

これについて私が理解したもう1つの方法は、たとえばフォーム内の1つのフィールドコンストラクター内に if else ステートメントを追加することです。

@inputFile(
     nsForm("plateFiles"),
 '_label -> "Upload files",
 'uploadwidget -> "Select file(s)"
)

そしてあなたのフィールドコンストラクターで:

@if(elements.args.contains('uploadwidget)){
    //Do something here
}else{
    //Do something else
}
于 2012-12-01T21:50:09.960 に答える