2015-12-30 2 views
0

Примечание: Под «рулями» я не имею в виду Handlebars.js, я имею в виду только двойные фигурные скобки.AngularJS - Как добавить элемент HTML через тройную операцию руля?


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

Вот мой код тд

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

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

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

ответ

2

Просто сделайте элемент и, возможно, скрыть его ng-show.

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

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

0

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

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

Я только что сделал пролет и поставить троичной логики в атрибуте класса, где класс .hide-error является display:none

+0

Вам следует лучше идти по пути, описанному Харрисом Вайнштейном в его ответе. – moonwave99