Подтвердить что ты не робот

Показать & nbsp, если значение пустое

Мне нужно показать пробел non- в ячейке table если значение пустое. Это мой шаблон:

<td class="licnum">{{participant.LicenseNumber}}</td>

Я пробовал это, но это не работает:

<td class="licnum">{{participant.LicenseNumber} || "$nbsp;"}</td>

Вот проблема с этим, возвращая null значения:

enter image description here

Если номер лицензии указан с null значением, ячейка пуста, а цвет строки выглядит следующим образом.

Используя предложение lucuma, он показывает это:

enter image description here

После изменения, если выражение в фильтре, все еще не показывает non- null значения:

enter image description here

4b9b3361

Ответ 1

Что вы должны работать. Вам не хватает закрывающего } и есть один в середине выражения, которое нужно удалить.

Ниже приведена демонстрация вашего решения и ng-if. http://plnkr.co/edit/UR7cLbi6GeqVYZOauAHZ?p=info

Фильтр, вероятно, является маршрутом, но вы можете сделать это с помощью простого ng-if или ng-show (либо на td, либо даже на промежутке):

<td class="licnum" ng-if="participant.LicenseNumber">{{participant.LicenseNumber}}</td>
<td class="licnum" ng-if="!participant.LicenseNumber">&nbsp;</td>

или

<td class="licnum"><span ng-if="participant.LicenseNumber">{{participant.LicenseNumber}}</span><span ng-if="!participant.LicenseNumber">&nbsp;</span></td>

Я предлагаю это как альтернативное решение, которое не требует добавления кода к контроллеру/фильтру.

Вы можете немного узнать об этом методе: if else в шаблонах AngularJS

Ответ 2

angular.module('myApp',[])
    .filter('chkEmpty',function(){
        return function(input){
            if(angular.isString(input) && !(angular.equals(input,null) || angular.equals(input,'')))
                return input;
            else
                return '&nbsp;';
        };
    });

Так же, как @Donal сказал, чтобы это работало, вам нужно использовать директиву ngSanitize's ng-bind-html следующим образом:

<td class="licnum" ng-bind-html="participant.LicenseNumber | chkEmpty"></td>

EDIT:

Вот простой пример: http://jsfiddle.net/mikeeconroy/TpPpB/