電話番号の入力を取得するカスタム HTML を作成しています。これは、電話の種類の選択ボックスと電話番号のテキスト ボックスを備えたコントロール グループであると想定されています。レイアウトは、組み込みの HTML ヘルパー @select および @inputText で行われるものとは異なる必要があります。したがって、私のコードは次のようになります。
@phoneGroup(field: Field, className: String = "phone") = {
<div class="control-group">
<label class="control-label" for="@field("type").id">@Messages("company.phoneNumbers")</label>
<div class="controls">
<select id="@field("type").id" name="@field("type").name">
@options(models.PhoneType.options)
</select>
<input type="text" id="@field("number").id" name="@field("number").name" value="@field("number").value">
</div>
</div>
}
そして、私は次のように私のテンプレートでそれを呼び出します:
@repeat(companyForm("phones"), min = 2) { phone =>
@phoneGroup(phone)
}
結果として得られる HTML では、
@options(models.PhoneType.options)
生成される HTML は次のとおりです。
<div class="control-group">
<label class="control-label" for="phones_0__type">Phone numbers</label>
<div class="controls">
<select id="phones_0__type" name="phones[0].type">
(MAI,Main)(MOB,Mobile)(FAX,Fax)(CUS,Custom)
</select>
<input type="text" id="phones_0__number" name="phones[0].number" value="">
</div>
</div>
どうやら @options は、models.PhoneType.options で渡した Map の文字列表現を出力するだけのようです。問題は、@options ヘルパーを使用して次の HTML を生成するにはどうすればよいかということです。
<option value="MAI">Main</option>
<option value="MOB">Mobile</option>
<option value="FAX">Fax</option>
<option value="CUS">Custom</option>
私は Java プログラマーですが、Scala の経験はありません。おそらく些細なことですが、例は見つかりませんでした。
前もって感謝します。- ドミトリ
UPDATED 2013-11-07 - 以下の回答セクションに解決策を掲載