我有一个滤色器,与此类似:
<input type="checkbox" id="orange" class="orange" value="orange"/>orange
<br/>
<input type="checkbox" id="peach" value="peach"/>peach
<br/>
<input type="checkbox" id="terracotta" value="terracotta"/>terracotta
<br/>
<input type="checkbox" id="coffee" value="coffee"/>coffee
<br/>
<input type="checkbox" id="browne" value="browne"/>browne
<br/>
<input type="checkbox" id="rose" value="rose"/>rose
<br/>
<input type="checkbox" id="red" value="red"/>red
<br/>
我从DB中获取颜色。
<div th:each="model : ${allColor}">
<span th:text="${model.color}"/>
我可以使用Thymeleaf隐藏颜色吗?
例如,现在我没有玫瑰色,咖啡色和桃色,但未来我可能会有这种颜色。我想进行颜色验证,如果颜色在DB中,用户可以在UI上看到复选框,否则复选框隐藏。我读到了th:if
和th:unless
。是否可以使用Thymeleaf制作它?
如果我尝试:
<input type="checkbox" th:if="${model.color==coffee}"id="coffee" value="coffee"/>coffee
它不起作用。
答案 0 :(得分:1)
您应该使用循环创建颜色复选框,而不是隐藏颜色。像这样:
.env
至于为什么你的原始尝试不起作用,很难说没有看到更多的HTML。我猜测$ {model.color}是未定义的,因为你不在循环中?此外,你错过了'咖啡'周围的报价。像这样:`$ {model.color =='coffee'
这样的东西也可以起作用,但我会推荐循环。
<th:block th:each="model : ${allColor}" th:with="color=${model.color}">
<input type="checkbox" th:id="${color}" th:class="${color}" th:value="${color}"/> <span th:text="${color}" />
<br />
</th:block>