Thymolでもメソッドの実行ができる
【前提条件】
[参考サイト]
Thymol公式サイト
Thymol Home
【概要】
以前、ThymolをでEL式によるデータ参照ができることがわかりました。
ThymeleafではOGNLを使うのでプロパティだけではなく、メソッドにもアクセスできます。
同じようにThyemolでもメソッドをJavaScriptの関数として使えるか試してみました。
【ソース】
[HTML]
まずは元となるHTMLソースです。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script src="/js/lib/thymol/thymol.js" th:remove="all" data-thymol-load="/js/lib/thymol/project-setting.js, /js/lib/thymol/data/sample.js"> </script> </head> <body> <ul th:if="${it.hasError()}" > <li th:text="${it.getMessage()}">テストメッセージ1</li> <li th:text="${it.getMessage2(1)}">テストメッセージ1</li> <li th:text="${it.getMessage2(2)}">テストメッセージ1</li> </ul> </body> </html>
ThymeleafのHTMLとして特に難しいことはしていないです。
th:ifとth:textにプロパティではなくメソッドを使用しています。
[JavaScript]
続いてデータを定義しているJavaScriptソースです。
thymol.configurePreExecution(function () { var data = { hasError: function () { return true; }, getMessage: function () { return "メッセージ"; }, getMessage2: function (number) { return "getMesssage2-" + number; } }; thymol.requestContext.createVariable("it", data); });
HTML上で呼び出しているメソッド名と同じ関数を定義します。
【まとめ】
と言うことで、Thymolはメソッド部分もJavaScriptの関数として再現できるようです。