我需要基于angularjs中的另一个集合过滤对象的集合。我敢肯定,我需要创建一个自定义过滤器,但没有找到类似的示例。因此,我列出了“ equipmentOptions”(基本上是产品自定义项,例如汽车中的高级立体声音响)。除非您已选择其他“ equipmentOptions”,否则某些“ equipmentOptions”不可用。
可用的equipmentOptions是$ scope.product.equipmentOptions。
已选择的equipmentOptions是$ scope.product.selectedOptions。
equipmentOptions具有属性requiredParents,它是其他设备选项的ID的集合。如果$ scope.product.selectedOptions中存在这些requiredParent中的任何一个,则应显示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?
};
});
最佳答案
您的第一个参数是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;
}
});