为什么当我应用时角度不会显示为空的值:
ng-repeat="p in foo | filter: filter2"
其中过滤器2是
$scope.filter2 = function(p){
if (p.state === null){
return p.state;
} else{
return;
}
};
这是我所说的 plnkr:http://plnkr.co/edit/cj3v1fuBu6sHVI7A4qlq?p=preview http://plnkr.co/edit/cj3v1fuBu6sHVI7A4qlq?p=preview
当过滤器不是空值时,它就可以工作,但我试图只显示空值。我可以尝试将所有空值更改为空值以外的默认值字符串吗?有没有什么地方可以让过滤器处理空值?
您可以过滤空项目,而无需编写自定义过滤器。
使用您的 plunk 中的代码,这将返回空项:
<ul ng-repeat="p in foo | filter:{state:'!'}" >
<li>{{p.name}}</li>
</ul>
相反,这将返回所有非空项目:
<ul ng-repeat="p in foo | filter:{state:'!!'}" >
<li>{{p.name}}</li>
</ul>
双非运算符将任何值转换为布尔值:第一个非运算符!
将真值转换为布尔值false
,第二个将布尔值反转回true
。在我的测试中,过滤器实际上只需使用state:''
但我会用!!
只是为了安全起见...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)