我需要根据angularjs中的另一个集合过滤对象集合。我需要创建一个自定义过滤器我确定但没有找到相似的示例。所以我有一个“equipmentOptions”列表(基本上它们是产品定制,例如你的汽车中的高级立体声)。除非您已经选择了其他“equipmentOptions”,否则某些“equipmentOptions”不可用。
可用的equipmentOptions是$ scope.product.equipmentOptions 已选择的equipmentOptions是$ scope.product.selectedOptions。
equipmentOptions有一个属性requiredParents,它是其他设备选项的id的集合。如果$ scope.product.selectedOptions中存在任何这些requiredParents,则应显示equipmentOption。
这是我到目前为止所尝试的无济于事:
<div ng-repeat="option in product.equipmentOptions | optionsFilter:product.selectedOptions">
optionsFilter.js
myApp.filter('optionsFilter', function () {
return function (selectedOptions) {
// I'm just trying to get the list of selected options as well as the current option here for filtering, how do I get the current option?
};
});
答案 0 :(得分:0)
您的第一个参数是product.equipmentOptions
的列表。第二个参数是product.selectedOptions
。像这样写下你的过滤器:
myApp.filter('optionsFilter', function() {
return function(equipmentOptions, selectedOptions) {
var filteredOptions = [];
angular.forEach(equipmentOptions, function(option) {
if(/*option meets criteria*/) {
filteredOptions.push(option);
}
});
return filteredOptions;
}
});