如果值为空,我需要在table
单元格中显示不间断的空格。这是我的模板:
<td class="licnum">{{participant.LicenseNumber}}</td>
我试过这个,但它不起作用:
<td class="licnum">{{participant.LicenseNumber} || "$nbsp;"}</td>
以下是返回null
值的问题:
如果许可证号码带有null
值,则该单元格为空,行着色如下所示。
使用lucuma的建议,它显示了这一点:
更改过滤器中的if语句后,仍然不会显示非null
值:
答案 0 :(得分:15)
你有什么应该工作。您缺少结束}
并且在表达式的中间有一个需要删除。
这是一个演示您的解决方案工作和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 statement in AngularJS templates
答案 1 :(得分:6)
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>
修改强>
以下是一个简单示例:http://jsfiddle.net/mikeeconroy/TpPpB/