我使用Thymeleaf创建html组件。组件在单独的文件中声明:
buttons.html
<div th:fragment="btn-basic" class="btn btn-basic" th:text="${text}" th:classappend="${class}">
Button
</div>
我们的想法是为组件提供某种类型的工具集。使用此组件的代码将是:
<div th:replace="~{buttons :: btn-basic (text='Button Text', class='button-class')}"></div>
它运行良好,但我想到按钮需要具有以下属性的情况:onclick="..."
或data-customAttr="..."
或任何其他属性。这就是问题所在:
这是我想调用片段的方式:
<div th:replace="~{buttons :: btn-basic (text='Button Text', class='button-class')}" onclick="..." data-customAttr="..."></div>
并且在btn-basic
片段中想要获取这些属性并附加到它。像这样:
<div th:fragment="btn-basic" class="btn btn-basic" th:text="${text}" th:classappend="${class}" onclick="..." data-customAttr="...">
Button
</div>
有什么想法吗?
答案 0 :(得分:1)
我有一个类似的想法,但是问题是,如果组件的定制与结果一样复杂,那么有什么好处?
顺便说一句。使用Thymeleaf Layout Dialect,您可以执行以下操作:https://ultraq.github.io/thymeleaf-layout-dialect/Examples.html#reusable-templates,我赞成这样做,而不是使用“按参数设置一切”的方法。