2012-06-26 12 views
9

私はプレイフレームワークを初めて使い、ブートストラップicon-classesの使い方を含む独自のtwitterブートストラップフィールドコンストラクタを作成したいと考えています。この動的にするために、私は追加のパラメータを介してアイコンクラスを渡す必要があります。それも可能ですか?私は、次を試してみましたが、他のいくつかのバリエーション:コンパイラはこのエラーをスローこれらのパラメータを持つPlay 2.0.1カスタムフィールドコンストラクタ...余分なパラメータ?

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

これでうまくいかない場合、他の引数を渡すにはどうすればよいですか?

答えて

10

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

+0

それでした。ありがとうございました! – Demnogonis

関連する問題