2011-06-23 4 views
23

Pracuję z LiftWeb, XML i metodą wiązania.Zmienna wartości atrybutu XML-literal

to działa:

scala> val id = "test"      
id: java.lang.String = test 

scala> <a href={id}>link</a>    
res4: scala.xml.Elem = <a href="test">link</a> 

ale co jeśli chcę <a href="page?param=test">link</a>?

To nie działa:

scala> <a href="page?param={id}">link</a> 
res5: scala.xml.Elem = <a href="page?param={id}">link</a> 

Odpowiedz

28

umieścić całość w nawiasie:

<a href={ "page?param=" + id }>link</a> 
+0

Ach, oczywiście. Dzięki. – aioobe

1

Odpowiedź na to wszystko umieścić w nawiasach klamrowych jest poprawna. Ale nie zapominaj, że musisz mieć napis w nawiasach klamrowych!

Więc trzeba napisać coś takiego (nie swoim przykładzie, oczywiście)

<edge label={name} weight={weight.toString} /> 

Jeśli pochodzą z języka, który przekształca rodzajów dla Ciebie, może to kosztować kilka minut zarysowania głowy przed wami pamiętaj, co jest nie tak, ponieważ SBT nie oferuje żadnego komunikatu o błędzie, tylko go podkreśla.

0

Używanie tego nie przegapisz cytaty: <a href={s"page?param=$Id"}>link</a>