2017-03-15 59 views
0

呈現我的複選框的HTML包含所有這些奇怪的HTML?在我的播放旋轉模板中顯示一個簡單的複選框

<dl class=" " id="unSubscribe_field"> 
    <dt><label for="unSubscribe">unSubscribe</label></dt> 
    <dd> 
     <input type="checkbox" name="unSubscribe" id="unSubscribe" > 
    </dd> 
    <dd class="info">format.boolean</dd> 
</dl> 

我只是想在屏幕上顯示一個簡單的複選框,我不需要這一切的標籤和dd標籤。

我甚至使用自定義的方式來呈現標籤:

@helper.input(form("unSubscribe")) { (id, name, value, args) => 
    <input type="checkbox" name="@name" id="@id" > 
} 

我的情況下類:

case class SubscriptionManageForm(token: Option[String], unSubscribe: Boolean) 

我怎樣才能顯示一個簡單的輸入複選框的標籤?下面是目前人丁的截圖:

enter image description here

回答

2

模板使用默認FieldConstructor,因爲你不指定自己的FieldConstructor爲隱含的價值。

要編寫自己的場構造,通過編寫一個名爲myFieldConstructor.scala.html模板,包含這些行開始:

@(elements: helper.FieldElements) 
@elements.input 

然後,在你的視圖模板,爲您的FieldConstructor內嵌一個隱含的價值:

@import helper._ 
@implicitField = @{ FieldConstructor(myFieldConstructor.f) } 

@helper.input(form("unSubscribe")) { (id, name, value, args) => 
       <input type="checkbox" name="@name" id="@id" > 
      } 

該模板將使用您的自定義字段構造函數來呈現輸入文本,如myFieldConstructor.scala.html中所述。

點擊此處瞭解詳情:https://www.playframework.com/documentation/2.5.x/ScalaCustomFieldConstructors

1

「我只是想在屏幕上顯示一個簡單的複選框。」如果你不想使用模板,你可以像這樣創建一個簡單的複選框。

<label> 
 
    Unsubscribe? <input type="checkbox" id="test1" name="test1"> 
 
</label> 
 

 
or iterating over server items... 
 

 
@for(item <- model.getItems()) { 
 
    <label> 
 
\t @item.labelText <input type="checkbox" name="@item.name" id="@item.id"> 
 
    </label> 
 
}

我的意思是,你可以保持的,只要你想的那麼簡單。如果Play模板增加了混淆,那麼使用基本HTML保持簡單。

相關問題