Проверка Angular2 [innerHTML] if else

#javascript #angular #tags

#javascript #угловой #Теги

Вопрос:

Я хочу отображать другой текст в кнопке, в зависимости от некоторых данных JSON.

Пример (конечно, не работает):

 <button [innerHTML]='"Male" if user.gender==1 else "Female"'></button>
  

Я знаю, что эта функциональность уже существует, например, в [ngClass]:

 <button [ngClass]='{"btn-success": data.complete, "btn-primary": !data.complete}'>Some text</button>
  

Использование подхода [ngClass] отображается как [object:Object] и, следовательно, не работает.

Есть решение?

Ответ №1:

использовать троичное выражение

 <button [innerHTML]='user.gender == 1 ? "Male" : "Female"'></button>
  

в любом случае вам это не нужно innerHtml . Я бы сделал это так:

 <button>{{ user.gender == 1 ? "Male" : "Female" }}</button>
  

Комментарии:

1. Это single quotes и double quotes это меня достало.

Ответ №2:

Более гибкий способ — просто привязать переменную к тексту кнопки.

Вот так

<button>{{buttonText}}</button>

и в вашем .ts файле просто установите значение buttonText на основе вашего значения json.