2013-01-16 36 views
10

我首先搜索了,但是我发现了令人困惑的答案,因为我是JavaScript的新手,而且还是业余爱好者。将变量表达式转换为javascript而不使用th:inline

我只是想知道如何变量表达式传递到JavaScript函数,有点像在JSP:

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

当然这失败,Thymeleaf并将字符串$ {} contact.id代替它的值,所以我怎么才能得到变量表达式的值呢?

我需要这种方式的原因是因为它取决于正在迭代th:each的行。

如果除了使用th:inline之外没有别的方法,那么考虑到上述说明,最好的方法是什么?

回答

27

这一个工作:

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

感谢出去给thymeleaf论坛: http://forum.thymeleaf.org/variable-expression-into-javascript-without-using-th-inline-td4025534.html

+0

这适用于我,只有一个参数,但我不能(看)如何看起来像两个参数? – demaniak

+0

啊,没关系,明白了!例如,一个固定的字符串参数,上面将是'th:onclick =''javascript:getContactId(\'someString \',\''+ $ {contact.id} +'');'“'Cool , 谢谢! – demaniak

0

您不能将javascript变量放入onclick或其他DOM属性。 onclick或任何其他DOM属性的值应该是一个常量字符串。

但是,可以动态修改onclick属性的值从JavaScript,像这样:

yourDomElement.onclick = anyVariable; 
+0

你是什么意思?这将是标记的一部分。 – Nimchip

+0

标记的部分应该是一个常量字符串。动态地,你可以从

相关问题