我有以下XML文字:
<input type='radio'
name={funcName}
value='true' />
如果checked='checked'
为真,我想加cond
。
我试过了,
<input type='radio'
name={funcName}
value='true'
{ if (cond) "checked='checked'" else "" } />
但它不起作用。
(我真的喜欢避免重复整个标记。)
答案 0 :(得分:30)
Option
也有效,可减少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>
答案 1 :(得分:8)
如果只想在选中时添加属性,可以在使用Scala XML API后添加它:
import scala.xml._
val snippet = {
val x = <input type='radio'
name={funcName}
value='true' />
if( cond ) {
x % new UnprefixedAttribute("checked","checked",Null)
} else x
}
答案 2 :(得分:8)
信不信由你,你可以这样做:
<input type='radio'
name={funcName}
value='true'
checked={ if (cond) "checked" else null } />
这是Scala的一个黑暗部分,null
实际上被使用了。
只是要说清楚,它完全符合您的要求:如果cond
为false
,那么input
将具有否 checked
属性