AngularJS - Как мне добавить элемент HTML через тройную операцию на руле?

0

Примечание: под "рулями" я не имею в виду Handlebars.js, я имею в виду двойные фигурные скобки.


У меня есть таблица, и в одном из столбцов я хочу отобразить данные и дополнительный элемент HTML в зависимости от результата тройной операции.

Вот мой код для td

<td>{{item.ProjectNumber}}{{item.DateSubmitted.toString().length > 0 ? null : <span class="error">Incomplete</span>}}</td>

Если я не пытаюсь сделать его элементом (а просто отображать "Неполное"), он отлично работает. Но когда я пытаюсь добавить этот диапазон, весь фрагмент кода добавляется в td.

Итак, как я могу создать HTML-элемент внутри рулей?

2 ответа

2
Лучший ответ

Просто создайте элемент и, возможно, спрячьте его с помощью ng-show.

<span class="error" ng-show="item.DateSubmitted.toString()">Incomplete</span>

Обычно я резервирую использование фигурных скобок для предоставления данных, а не принятия решений. Если вам абсолютно необходимо создать элемент inline, как это, вам нужно сообщить своему приложению, чтобы он доверял HTML, как описано в этом вопросе SE.

0

Хорошо, поэтому я придумал другой способ сделать это.

<td>{{factsheet.ProjectNumber}}<span class="{{factsheet.DateSubmitted.toString().length > 0 ? 'hide-error' : 'error'}}">Incomplete</span></td>

Я просто сделал span и поместил тернарную логику в атрибут класса, где .hide-error класс .hide-error display:none

  • 0
    Вам лучше пойти так, как описал Харрис Вайнштейн в своем ответе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню