javascript - 使用 AngularJS 自定义过滤器根据另一个集合过滤一个集合

标签 javascript angularjs angularjs-filter

我需要根据 angularjs 中的另一个集合来过滤对象集合。我确信我需要创建一个自定义过滤器,但没有找到类似的示例。所以我有一个“设备选项”列表(基本上它们是产品定制,例如汽车中的高级音响)。除非您已经选择了其他“设备选项”,否则某些“设备选项”不可用。

可用的 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">

选项过滤器.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;
  }
});

关于javascript - 使用 AngularJS 自定义过滤器根据另一个集合过滤一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913828/

相关文章:

angularjs - 使用 Yeoman 的 Angular-Fullstack 在 postman 中发帖时出现 403

javascript - UI Bootstrap 选项卡在重新加载后保存事件选项卡

javascript - Angular.js 将过滤器传递给指令双向 ('=' ) 属性

angularjs - 如何使用 AngularJS 对结果进行分页但在完整列表中进行过滤?

javascript - 获取 Laravel Controller 中的 Js 值

javascript - D3 - 如何将圆包转换为椭圆包?

javascript - 测试表单数据并返回单个错误消息(Javascript)

javascript - 将变量添加到文本字段 JavaScript

json - AngularJS ng-repeat orderBy date 不起作用

javascript - 如何过滤有时未定义的值?