Я не знаю, как решить следующее: я хотел бы позволить моей модели генерировать реальный javascript динамически на основе некоторой логики модели.
Этот последний фрагмент кода javascript затем должен быть добавлен в часть $(document).ready {} моей html-страницы.
Дело в том, что если я использую inline = "javascript", код будет процитирован как мой getter - это String (так оно упоминается в документе Thymeleaf, но это не то, что мне нужно;)
Если я использую inline = "text" in, не цитируется, но все кавычки вместо этого исключаются;-) - также приятно, но непригодно 8)
Если я попробую inline = "none", ничего не произойдет.
Вот примеры
Моя модель getter создала следующий код Javascript.
PageHelper class
public String documentReady() {
// do some database operations to get the numbers 8,5,3,2
return "PhotoGallery.load(8,5,3,2).loadTheme(name='basic')";
}
Итак, если я сейчас попробую inline = "javascript"
<script th:inline="javascript">
/*<![CDATA[*/
jQuery().ready(function(){
/*[[${pageHelper.documentReady}]]*/
});
/*]]>*/
</script>
будет отображаться
<script>
/*<![CDATA[*/
jQuery().ready(function(){
'PhotoGallery.load(8,5,3,2).loadTheme(name=\'basic\')'
});
/*]]>*/
</script>
Что не помогает, поскольку это строковый литерал, не более того (так с ним и занимается Thymeleaf).
Итак, если я попробую inline = "text"
<script>
/*<![CDATA[*/
jQuery().ready(function(){
PhotoGallery.load(8,5,3,2).loadTheme(name='basic')
});
/*]]>*/
</script>
Что скрывает кавычки.
inline = "none" Я действительно не понимаю, поскольку он ничего не делает
<script>
/*<![CDATA[*/
jQuery().ready(function(){
[[${pageHelper.documentReady}]]
});
/*]]>*/
</script>
Честно говоря, я понятия не имею, как решить эту проблему, и, надеюсь, кто-то там знает, как с этим справиться.
Большое спасибо заранее ура Джон