我想做如下的事情。这可能吗?或者有解决方法吗?
myFragment.html
<div th:fragment="myContent(someObject)">
Some popover strings with some business logic
<span th:text="${someObject.property}">[object property]</span>
</div>
myTemplate.html
<!-- how would I correct this so that the fragment is evaluated? -->
<div th:with="popoverContent = ${myFragment :: myContent(someObject)}">
<a th:data-content="${popoverContent}"></a>
</div>
我可以在一个片段中插入一个片段吗?th:with
作为变量?我可以创造popoverContent
服务器端,但我认为可能有更好的方法。
更新:有关用例的更多细节
我需要带有一些基本数学公式的工具提示来设计样式。
In myFragment.html
,我有一个 HTMLtable
与多个th:cases
in a th:switch
. Each td
有一个带有计算值的工具提示。
工具提示内容类似于“我们计算您的自定义比率的方式如下:((1 + 5) / 3) + 1 = 3”,因此我们将其样式设置为更清晰地阅读。
在服务器端执行此操作会很混乱,现在最好的选择是避免使用th:fragment
并提供每个中的逻辑th:data-content
直接在每个字段中th:case
.
这看起来是一件小事,但令人惊讶的是,它有点令人头疼,因为计算有时会发生变化,因此修改多个位置很容易出错,而且很麻烦。我们在多个地方总体上做同样的事情。
我不知道有什么方法可以将片段作为文本获取,但这是使用 jquery 实现的一种方法:
<!-- onload -->
<script>
$(function() {
$('#dest').attr('data-content', $('#source').html());
});
</script>
html 看起来像这样:
<div id="dest"></div>
<div id="source" style="display: none;" th:insert="~{popover :: popover}" />
在 Chrome 开发者工具中进行渲染并检查 html 后,我可以看到:
<div id="dest" data-content="<div>Hello, I am a popover</div>"></div>
<div id="source" style="display: none;"><div>Hello, I am a popover</div></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)