【发布时间】:2014-09-22 16:51:50
【问题描述】:
我有这个ng-repeat
<alert ng-repeat="(name, msg) in warnings">{{ msg }}</alert>
枚举一个this对象
$scope.warnings = {
a: null,
b: 'some warning',
c: null
}
如何过滤具有 null 值或为空的警告?
【问题讨论】:
-
既然你有字典,我不认为你可以使用过滤器,你需要使用 ng-if
<alert ng-repeat="(name, msg) in warnings" ng-if="msg">{{ msg }}</alert>将它更改为数组,你应该很好地使用过滤器。 -
@PSL 这行得通,但 naomiks 解决方案在 imho 中更干净,谢谢你
-
哦,我没有回答... :) 顺便说一句,解决方案效率较低,您可以直接在对象
angular.forEach($scope.warnings , function(v, k){ if(!v) delete $scope.warnings[k]; })上使用 angular.forEach。如果你是eaching 它,你可以将它转换为一个最适合 ng-repeat 的数组,甚至是你可以用数组管理的排序 -
我现在只有
warings = {b: 'some warning' }并使用delete摆脱它们
标签: angularjs filter ng-repeat