2013-01-16 13 views
10

Szukałem pierwszy ale znalazłem mylące odpowiedź ponieważ jestem nowy w Thymeleaf i amatorskie w najlepszym razie w javascript.zmienny wyraz w javascript bez użycia th: inline

Chcę tylko wiedzieć, jak przekazać zmienną do wyrażenia funkcji JavaScript, coś jak w JSP:

<a href="#" onclick="javascript:getContactId('${contact.id}');">Button</a> 

Oczywiście, to się nie powiedzie z Thymeleaf i przechodzi ciąg $ {} zamiast contact.id jego wartość, więc jak mogę zamiast tego uzyskać wartość wyrażenia zmiennej?

Powodem chcę to w ten sposób dlatego, że zależy to od wiersza, który jest powtórzyć przez th:each.

Jeśli nie ma innego sposobu, z wyjątkiem użycia th:inline, to co jest najlepszym rozwiązaniem, biorąc pod uwagę powyższe stwierdzenie?

Odpowiedz

27

Ten pracował:

th:onclick="'javascript:getContactId(\'' + ${contact.id} + '\');'" 

Dzięki wychodzi do forum thymeleaf: http://forum.thymeleaf.org/variable-expression-into-javascript-without-using-th-inline-td4025534.html

+0

Działa to dla mnie, z jednym parametrem, ale nie mogę (jeszcze) zobaczyć, jak to wygląda z dwoma parametrami? – demaniak

+0

Ah nevermind, rozumiem! Dla (przykład) ustalonego ciągu znaków, powyższe będzie "th: onclick =" 'javascript: getContactId (\' someString \ ', \' '+ $ {contact.id} +' \ ');' "' Cool , dzięki! – demaniak

0

nie można umieścić javascript zmienne do onclick lub inne atrybuty DOM. Wartość onclick lub dowolny inny atrybut DOM powinien być ciągłym ciągiem.

Jednakże, można dynamicznie zmieniać wartość atrybutu onclick z javascript, podobnie jak to:

yourDomElement.onclick = anyVariable; 
+0

co masz na myśli? będzie to część tagu . – Nimchip

+0

część tagu powinna być ciągiem stałym. Dynamicznie możesz to zrobić z wnętrza

0
Powiązane problemy