Thymeleaf - всегда сохранять HTML-элемент, но условно отображать значение - PullRequest
0 голосов
/ 02 мая 2019

Мне нужно, чтобы Thymeleaf всегда включал элемент label, но отображал для него только условное значение.

Если message.type равно warning, то должно отображаться message.text. В противном случае HTML DOM все равно должен содержать элемент label.

Я пробовал это, но тогда элемент label отсутствует в HTML, когда message.type не равен warning.

<label id="message" th:if="${message.type == 'warning'}" 
   th:value="${message.text}" th:text="${message.text}"></label>

Я пытаюсь сделать что-то вроде этого:

<label id="message" th:value="${message.type=='warning' ? 
    message.text: ''}" th:text="${message.type=='warning'? 
   message.text: ''"></label>

Если message.type - предупреждение, я бы ожидал, что HTML будет выглядеть так:

<label id="message">My warning message</label> 

В противном случае мне бы хотелось, чтобы HTML был таким:

<label id="message"></label> 

1 Ответ

1 голос
/ 02 мая 2019

Много разных способов сделать это.У вас уже есть тот, который я ожидал бы работать.(почему вы говорите, что это не работает?) Кроме того, я не уверен, почему вы включаете th:value в свои теги (я включаю их, чтобы соответствовать вашему вопросу).

<label
    id="message"
    th:value="${message.type == 'warning'? message.text : ''}"
    th:text="${message.type == 'warning'? message.text : ''}"></label>

Вы также можете сделать что-то вроде этого:

<label th:if="${message.type == 'warning'}" id="message"  th:value="${message.text}" th:text="${message.text}"></label>
<label th:unless="${message.type == 'warning'}" id="message"></label>

или вот так (при условии, что дополнительный интервал не испортит нужную разметку):

<label id="message"><span th:if="${message.type == 'warning'}" th:text="${message.text}" /></label>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...