1

Play フレームワークで、カスタマイズされた Bootstrap フィールド コンストラクターを定義しました

@(elements: helper.FieldElements)

<div class="control-group@if(elements.hasErrors) { error}">
    <label class="control-label" for="@elements.id">CIAO@elements.label(elements.lang)</label>

    <div class="controls">
        @elements.input

        @elements.errors(elements.lang).map { error =>
            <span class="help-inline">@error</span>
        }
    </div>
</div>

@(editForm: Form[Azienda]) @import helper._ @import crudder.viewhelpers.html.bootstrap.f @implicitField = @{ FieldConstructor(crudder. viewhelpers.html.bootstrap.f) }

@editFields() = {
    @inputText(editForm("descrizione"), '_label -> "Ragione sociale")
}

@main("Amministrazione - Aziende") {
         <!--This one use my customized block-->  
         @inputText(editForm("descrizione"), '_label -> "Ragione sociale")
         <!--This one don't work!-->  
         @editFields()

}

再利用可能なブロックでカスタマイズされたコンストラクターを使用する方法についてのアイデアはありますか?

4

1 に答える 1

2

わかりました、この質問はあまり魅力的ではないようですが、他の誰かに役立つ可能性がある場合に備えて、私が見つけた回避策を投稿します.

暗黙のコンストラクターがブロック内に表示されないように見えるため、コンストラクターを明示的に inputText に渡します。

@(aziende: List[crudder.models.Persistent], editForm: Form[Azienda],id:Long)

@import helper._
@import crudder.viewhelpers.html.bootstrap.f
@Field = @{ FieldConstructor(crudder.viewhelpers.html.bootstrap.f) }

@editFields() = {

    @inputText(editForm("descrizione"), '_label -> "Ragione sociale")(Field,null)
}

@main("Amministrazione - Aziende") {
<!--This one use my customized block-->
@inputText(editForm("descrizione"), '_label -> "Ragione sociale")
<!--Now this work too!-->
@editFields()

}
于 2012-07-09T11:10:43.067 に答える