簡體   English   中英

具有空值的角度濾鏡對象

[英]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

我怎樣才能做到這一點。

這是一個竊賊http://plnkr.co/edit/wZpr0nerqti4L2Yg37iT?p=preview

您需要添加檢查以查看名稱是否不是空字符串。 請參見下面的代碼段。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM