Показать & 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]()
Ответы
Ответ 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"> </td>
или
<td class="licnum"><span ng-if="participant.LicenseNumber">{{participant.LicenseNumber}}</span><span ng-if="!participant.LicenseNumber"> </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 ' ';
};
});
Так же, как @Donal сказал, чтобы это работало, вам нужно использовать директиву ngSanitize's
ng-bind-html
следующим образом:
<td class="licnum" ng-bind-html="participant.LicenseNumber | chkEmpty"></td>
EDIT:
Вот простой пример: http://jsfiddle.net/mikeeconroy/TpPpB/