Thymeleaf - 如何根据互斥条件应用两种(或更多)样式

时间:2017-07-11 21:32:26

标签: html css thymeleaf

我需要在表中使用替换背景颜色的行。我还需要让行中的文本颜色依赖于值。我怎么能用Thymeleaf做到这一点?这是我的代码:

let jsonDestination =  "{ \"people\": [{ \"firstName\": \"Paul\", \"lastName\": \"Hudson\", \"isAlive\": true }, { \"firstName\": \"Angela\", \"lastName\": \"Merkel\", \"isAlive\": true }, { \"firstName\": \"George\", \"lastName\": \"Washington\", \"isAlive\": false } ] }"

          if let dataFromString = jsonDestination.data(using: String.Encoding.utf8) {
        let destinationJson = JSON(data: dataFromString)

        for item in destinationJson["people"].arrayValue {
            print(item["firstName"].stringValue)
        }
    }

但这不起作用。 Thymeleaf给出了解析错误:<tr th:each="item, rowStat : ${items}" th:style="${rowStat.odd} ? 'background: #f0f0f2;' : 'background: #ffffff;'" th:style="${item.getValue()} > 5 ? 'color: red;' : 'color: black;'"> <td.... <!-- cols> </tr>

更新

请注意这是一封HTML电子邮件,因此我需要使用内联样式。

1 个答案:

答案 0 :(得分:5)

Thymeleaf有一个th:styleappend属性,允许应用多种样式:

<tr th:each="item, rowStat : ${items}" 
    th:style="${rowStat.odd} ? 'background: #f0f0f2;' : 'background: #ffffff;'"
    th:styleappend="${item.getValue()} > 5 ? 'color: red;' : 'color: black;'">

                <td.... <!-- cols>

</tr>