こんな感じのHTMLを作成したかったのね。
<tr> <th class="col-sm-2 control-label" for="id_name">ラベル</th> <td class="col-sm-10"> <input type="text" id="id_name" name="id_name" value="" class="form-control" placeholder="ラベル"> </td> </tr>
この中にあるlabel
タグのfor="id_name"
を出力したかったんだけど、どうやってやればいいのかわからなかった。
呼び出し側でforを定義する
呼び出し側でforを渡せばいいかなと単純に思った。CakePHPのHelperみたいな使い方だね。
- index.scala.html
@(formValue:Form[TestClass]) @import helper._ @implicitFieldConstructor = @{ FieldConstructor(noLabelInputTextHelper.f) } @inputText(formValue("id_name"), '_for -> "id_name", 'class -> "form-control", '_label -> "ラベル", 'placeholder -> "ラベル", '_help -> "")
んで、呼び出し側でこう書いた
- helper/noLabelInputTextHelper.scala.html
@(elements: helper.FieldElements) <tr> <th class="col-sm-2 control-label" for="@elements.for">@elements.label</th> <td class="col-sm-10"> @elements.input </td> </tr>
そうするとfor="@elements.for"
の箇所でエラーが。。。(°ω°;
これが正解
そもそもfor
を書かずに、@elements.id
で取得するのが正解らしい
- index.scala.html
@(formValue:Form[TestClass]) @import helper._ @implicitFieldConstructor = @{ FieldConstructor(noLabelInputTextHelper.f) } @inputText(formValue("id_name"), 'class -> "form-control", '_label -> "ラベル", 'placeholder -> "ラベル", '_help -> "")
- helper/noLabelInputTextHelper.scala.html
@(elements: helper.FieldElements) <tr> <th class="col-sm-2 control-label" for="@elements.id">@elements.label</th> <td class="col-sm-10"> @elements.input </td> </tr>
よくわかってないお(^ω^ = ^ω^)