5

これは私のテンプレートです:

@(smsReviewForm: Form[SmsReview], grades: Seq[Grade])

@styles = {

}

@scripts = {

}
@import mobile.mobileMain
@import helper._
@mobileMain(Messages("reco.index.title"), styles, scripts) {
    <div id="header">
        <p class="floatleft"><img src="@routes.Assets.at("images/mobile/general/reco.png")" alt="Reco" /></p>
        <div class="clear"></div>
    </div>

    @helper.form(routes.Sms.submit) {

        @helper.inputText(
            smsReviewForm("lastname"),
            '_label -> "Label",
            '_id -> "lastname"
        )

        <div class="actions">
            <input type="submit" class="btn primary" value="Submit">
        </div>
    }
}

レギュラーを使用@import helper._すると、私のアプリで生成された html は play 2.1 ドキュメントの例のようになります:

<dl class=" " id="lastname_field">
    <dt><label for="lastname">Label</label></dt>
    <dd>
    <input type="text" id="lastname" name="lastname" value="">
</dd>
        <dd class="info">Required</dd>    
</dl>

私が使用する@import helper.twitterBootstrap._と、次のようになります。

<div class="clearfix  " id="lastname_field">
<label for="lastname">Label</label>
<div class="input">

<input type="text" id="lastname" name="lastname" value="">
    <span class="help-inline"></span>
    <span class="help-block">Required</span> 
</div>

私はddhml タイプの実装を使用しておらず、Twitter ブートストラップのものは、私が使用していた構造に似ていますが、ブートストラップ js と css の実装には興味がありません。だから私の質問は、これについてあなたの考えは何ですか. 何を使ったことがありますか?html レンダリングに独自の実装を使用している可能性がありますか?

4

1 に答える 1

1

レンダリング スタイルを指定するには、独自のフィールド コンストラクターを作成する必要があります。

「独自のコンストラクターの作成」部分については、こちらの公式ドキュメントをご覧ください。

http://www.playframework.com/documentation/2.1.0/ScalaFormHelpers

したがって、基本helpers._またはデフォルトのブートストラップ フィールド コンストラクターをインポートする代わりに、テンプレートを参照しますhelper.twitterBootstrap._import MyOwnHelpers._

全体はドキュメントでよく説明されています:)

詳細については、ここで私が作成した 1 つのフィールド コンストラクターの例を示します。もちろん、boostrap を使用しなくてもかまいません。私の場合、そうしました。

twitterBootstrapInput.scala.html

<div class="control-group @if(elements.hasErrors) {error}">
    <label class="control-label" for="@elements.id">@elements.label</label>
    <div class="controls">
    @if(elements.args.contains(Symbol("data-schedule"))){
          <div class="schedulepicker input-append">
              @elements.input
            <span class="add-on">
              <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
            </span>
          </div>
    } else {
        @elements.input
    }
        <span class="help-inline">@elements.errors.mkString(", ")</span>
    </div>
</div>

xx.scala.htmlそして、私の関係するファイル内でのそのインポート:

@implicitFieldConstructor = @{ FieldConstructor(twitterBoostrapInput.f) }
于 2013-03-04T11:00:31.903 に答える