Я вызываю свою функцию JavaScript из Thymeleaf, как показано ниже:

th:onclick="'viewDocument(\'' + ${document.docTypeLongDesc} +'\');'"

Но я только что обновил свою весеннюю загрузочную версию до версии 2.1.4, с которой также обновился Thymeleaf. И предыдущая версия больше не поддерживается.

В ходе дальнейших исследований я обнаружил, что я должен быть в состоянии использовать

th:onclick="' viewDocument (this.getAttribute ('document.docTypeLongDesc'));'"

Тем не менее, это не дает никакой ошибки, но и не работает. Я удалил аргумент и смог вызвать функцию просто отлично. Так что я предполагаю, что я не передаю аргумент правильно. Любое руководство будет полезно. ТИА .

4
ILRNew 17 Апр 2019 в 14:19

2 ответа

Лучший ответ

Смотрите это: Ограниченный режим: избегайте переменных выражений, возвращающих строки в процессорах для обработчиков событий (th: on *).

Чтобы правильно передать переменные Thymeleaf в событие onclick, поместите переменную в атрибут data и прочитайте ее, используя getAttribute().

th:data-longDescription="${document.docTypeLongDesc}" onclick="viewDocument(this.getAttribute('data-longDescription'));"
3
Metroids 17 Апр 2019 в 14:48

Вы должны использовать его следующим образом:

th:onclick="${'viewDocument(' + document.docTypeLongDesc + ');'}"
-2
Ahmet 17 Апр 2019 в 14:44