9

私は play フレームワークを初めて使用し、bootstrap icon-classesの使用を含む独自の Twitter ブートストラップ フィールド コンストラクターを作成したいと考えています。これを動的にするには、追加のパラメーターを介してアイコンクラスを渡す必要があります。それは可能ですか?私は以下と他のいくつかのバリエーションを試しました:

index.scala.html

@(loginForm: Form[Login])

@import helper._
@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.render) } 
@main("Akquise") {

<div class="container row">
    <div class="span4 offset5">
        @form(routes.Application.login(), args = 'class -> "well"){
            <h3>Anmeldung</h3>
            <fieldset>
            @inputText(loginForm("username"), '_label -> "Nutzername", '_iconcls -> "icon-user")
            @inputPassword(loginForm("password"), '_label -> "Passwort", '_iconcls -> "icon-key")
            </fieldset>

            <button type="submit" class="btn btn-primary">Login</button>            
        }
    </div>
</div>

}

twitterBootstrapInput.scala.html

@(elements: helper.FieldElements)

@************************************************** 
* Generate input according twitter bootsrap rules *
**************************************************@
<label for="@elements.id">@elements.label</label>
<div class="input-prepend">
    <span class="add-on" style="margin-right:-5px;">
        <i class="@elements.iconcls icon-size"></i>
    </span>
    @elements.input
</div>

これらのパラメーターを使用すると、コンパイラーは次のエラーをスローします。

value iconcls is not a member of views.html.helper.FieldElements

それがうまくいかない場合、どうすれば他の引数を渡すことができますか?

4

1 に答える 1

10

パラメータを正しい方法で渡しています。ただし、追加のパラメータは に保存され@elements.argsます。したがって@elements.args.get('_iconcls)、パラメーターを読み取るために使用する必要があります。

于 2012-06-26T08:00:01.267 に答える