2014-09-22 51 views
-1

當我有這個ng-repeat過濾空值中列舉了對象的屬性

<alert ng-repeat="(name, msg) in warnings">{{ msg }}</alert> 

,一個枚舉該對象

$scope.warnings = { 
    a: null, 
    b: 'some warning', 
    c: null 
} 

我將如何篩選有NullValue屬性或者是空的警告?

+1

<警告ng-repeat =「(name,msg)在警告中」ng-if =「msg」> {{msg}}將其更改爲數組,您應該很好地使用過濾器。 – PSL 2014-09-22 16:56:28

+0

@PSL這樣的工作,但naomiks解決方案是更清潔的恕我直言,謝謝你沒有更少 – 2014-09-22 17:06:18

+0

噢,我沒有回答... :)順便說一句,解決方案效率較低,你可以直接使用angular.forEach對象'角。 forEach($ scope.warnings,function(v,k){if(!v)delete $ scope.warnings [k];})'。如果你是'每一個'它你可以事件轉換爲一個數組,這與ng-repeat效果最好,甚至可以用數組 – PSL 2014-09-22 17:09:56

回答

2

有可能在角LIB這是更好的工具,但既然你有一本字典我不認爲你可以使用文件管理器,你需要使用NG-如果'你可以做到這一點

Object.keys($scope.warnings).forEach(function(key) { 
if (!$scope.warnings[key]) delete $scope.warnings[key] 
}); 
+0

謝謝,只有對象上存在的警告並刪除所有其他內容會更清晰。 – 2014-09-22 17:08:34