ChoiceItem
이
val choiceItem = ChoiceItem("Some key", <input type="radio" value="val" name="somename" />)
같은임을 감안
ChoiceHolder(Seq(choiceItem)).toForm
를 다음과 같이 당신은 당신이
,536,913처럼 뭔가를 반환 할 수 있습니다
ChoiceHolder.htmlize = ci => evalElemWithId((id, e) => e ++ <label for={id}>{ci.key.toString}</label>)(ci.xhtml)
를 사용할 수있는 toForm
메소드를 호출 63,210
NodeSeq(<input name="somename" type="radio" value="val" id="F212153483008MMP"></input>, <label for="F212153483008MMP">Some key</label>)
또는, 당신은 당신에게 복잡한
NodeSeq(<label for="F689721302326S3S"><input name="somename" type="radio" value="val" id="F689721302326S3S"></input>Some key</label>)
비트 제공
ChoiceHolder.htmlize = ci => evalElemWithId((id, e) => <label for={id}>{e} {ci.key.toString}</label>)(ci.xhtml)
주위에 라벨을 포장하려는 경우 : evalElemWithId
(가져 오기 net.liftweb.util.Helpers.evalElemWithId
을)를 NodeSeq
의 첫 번째 요소 (소요 예 choiceItem.xhtml)에 추가하고 id
속성을 추가합니다. 그 다음이 id를받는 익명의 함수가 호출되어 라벨의 for
속성에서 사용할 수 있습니다.
편집 ChoiceHolder.htmlize
모든 ChoiceHolder.toForm
호출을 통해 호출되는 전역 함수의 종류입니다 참고. 따라서 어디서나 동일한 레이아웃을 원할 경우 전역 적으로 변경하는 것이 좋습니다.
하나의 경우에만 별개의 레이아웃을 만들고 싶다면 choiceToForm
메서드를 호출하는 것이 좋습니다.
덕분에 도움을 많이하지만, 난 몰라 코드를 사용하는 방법을 알아야합니다. ChoiceHolder.htmlize를 사용하려고했지만 컴파일러가 evalElemWithId에 대해 알지 못한다고 경고합니다. 나는이 코드를 어디에 써야하는지 알 수 없다. 자신의 수업에? 새 개체를 만드시겠습니까? – kajo
'import net.liftweb.util.Helpers.evalElemWithId' – Debilski
@kajo : 죄송합니다. 실제로 오류가 발생했습니다.지금은 괜찮을 것입니다 ... – Debilski