vacios son que los las etiquetas etiqueta elementos ejemplos cuales crear con como cerrar basicas atributos atributo xml scala lift

son - etiquetas xml



Condicionalmente incluir atributo en literal XML (3)

Lo creas o no, puedes hacerlo así:

<input type=''radio'' name={funcName} value=''true'' checked={ if (cond) "checked" else null } />

Esta es una de las partes oscuras de Scala donde null realmente se usa.

Solo para dejarlo en claro, hace exactamente lo que quiere: si cond es false , entonces la input no tendrá ningún atributo checked .

Tengo el siguiente literal XML:

<input type=''radio'' name={funcName} value=''true'' />

Me gustaría incluir checked=''checked'' si cond es verdadero.

He intentado esto,

<input type=''radio'' name={funcName} value=''true'' { if (cond) "checked=''checked''" else "" } />

pero no funciona

(Realmente me gustaría evitar repetir la etiqueta completa).


Si desea agregar el atributo solo cuando está marcado, puede agregarlo después de usar la API XML de Scala:

import scala.xml._ val snippet = { val x = <input type=''radio'' name={funcName} value=''true'' /> if( cond ) { x % new UnprefixedAttribute("checked","checked",Null) } else x }


Option también funciona, lo que reduce el uso innecesario de null :

scala> val checked:Option[xml.Text] = None checked: Option[scala.xml.Text] = None scala> val xml = <input checked={checked} /> xml: scala.xml.Elem = <input ></input>