【发布时间】:2018-03-30 08:07:40
【问题描述】:
我使用 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="..." 或任何其他属性。问题来了:
- 如何将属性传递给按钮?
- 一种方法是作为fragment的参数传递,但是太丑了。
- 有没有办法在片段中获取占位符的属性? (见下面的例子)
我想这样称呼片段:
<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>
有什么想法吗?
【问题讨论】: