[英]angular filter object with empty values
我有以下數據:
$scope.icons = [{
"id": 1,
"bonuses": [
{ "id": 1, "name": "Rob", "amount": 10, "foreman": 1, "percA": 1, "percB": 0 },
{ "id": 2, "name": "Mark", "amount": 20, "foreman": 1, "percA": 1, "percB": 0 },
]
}, {
"id": 2,
"bonuses": [
{ "id": 1, "name": "Rob", "amount": 11, "foreman": 1, "percA": 1, "percB": 0 },
{ "id": 2, "name": "", "amount": 30, "foreman": 1, "percA": 1, "percB": 0 },
]
}, {
"id": 3,
"bonuses": [
{ "id": 1, "name": "Rob", "amount": 10, "foreman": 1, "percA": 1, "percB": 0 },
{ "id": 2, "name": "Kent", "amount": 35, "foreman": 1, "percA": 1, "percB": 0 },
]
}];
控制器內部的此功能:
$scope.getBonusPeople = function() {
var bonusData = [];
angular.forEach($scope.icons, function(item) {
angular.forEach(item.bonuses, function(bonusLine) {
if (bonusData.indexOf(bonusLine) == -1 ) {
bonusData.push(bonusLine);
}
})
});
return $scope.bonusPeople = bonusData;
}
結果是:
Rob - 10
Mark - 20
Rob - 11
- 30
Rob - 10
Kent - 35
我正在嘗試僅查找bonuses.name具有值的行。
結果應該是
Rob - 10
Mark - 20
Rob - 11
Rob - 10
Kent - 35
我怎樣才能做到這一點。
您需要添加檢查以查看名稱是否不是空字符串。 請參見下面的代碼段。
angular.forEach($scope.icons, function (item) {
angular.forEach(item.bonuses, function (bonusLine) {
if (bonusData.indexOf(bonusLine) == -1 && bonusLine.name !== '') {
bonusData.push(bonusLine);
}
})
});
檢查名稱是否具有值。 如果是這樣,請按照您當前的邏輯進行:
angular.forEach($scope.icons, function(item) {
angular.forEach(item.bonuses, function(bonusLine) {
if(bonusLine.name!=='') {
if (bonusData.indexOf(bonusLine) == -1 ) {
bonusData.push(bonusLine);
}
}
})
});
朋克: http ://plnkr.co/edit/E9bXzn8Jt2B8yJ3IU33s?p=preview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.