Javascript 过滤多个复选框

Javascript 过滤多个复选框,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我试图在多个复选框中筛选结果 这是我的 如何为过滤器的复选框编写动态ng模型 函数MainCtrl($scope){ $scope.languages=[ {name:'波斯语',_id:0}, {name:'English',_id:1}, {名称:'西班牙语',_id:2} ]; $scope.bu=[ {name:'A',_id:1}, {name:'B',_id:2}, {name:'C',_id:3}, {name:'D',_id:4}, {name:'E',_id:5} ]; $s

我试图在多个复选框中筛选结果

这是我的

如何为过滤器的
复选框
编写动态
ng模型

函数MainCtrl($scope){
$scope.languages=[
{name:'波斯语',_id:0},
{name:'English',_id:1},
{名称:'西班牙语',_id:2}
];
$scope.bu=[
{name:'A',_id:1},
{name:'B',_id:2},
{name:'C',_id:3},
{name:'D',_id:4},
{name:'E',_id:5}
];
$scope.array=[
{   
“id”:910,
“语言”:{
“_id”:“333”,
“姓名”:“波斯语”,
“缩写”:“PE”
},
“业务单位”:{
“_id”:“2”,
“名称”:“B”
}
},
{    
“id”:909,
“语言”:{
“_id”:“456”,
“名称”:“英语”,
“缩写”:“EN”
},
“业务单位”:{
“_id”:“3”,
“名称”:“C”
}
},
{    
“id”:908,
“语言”:{
“_id”:“456”,
“姓名”:“西班牙语”,
“缩写”:“SP”
},
“业务单位”:{
“_id”:“4”,
“名称”:“D”
}
},
{    
“身份证”:911,
“语言”:{
“_id”:“343”,
“姓名”:“德语”,
“缩写”:“GE”
},
“业务单位”:{
“_id”:“5”,
“名称”:“E”
}
},
{    
“id”:912,
“语言”:{
“_id”:“696”,
“姓名”:“俄文”,
“缩写”:“RU”
},
“业务单位”:{
“_id”:“1”,
“名称”:“A”
}
}]
}

  • {{o.name}}, `



  • {{o.name}}, `



  • {{arr.language.name}}”和“{arr.business_unit.name}”
    您可以使用自定义过滤器来实现您的目标:

    自定义文件管理器:

    filter('myFilter', function() {
      return function(items, search) {
        var filterItems = {
          search: search,
          result: []
        };
    
        if (!search.needFilter) {
          return items;
        }
    
        angular.forEach(items, function(value, key) {
          if (this.search.language[value.language.name] === true || this.search.business_unit[value.business_unit.name] === true) {
            this.result.push(value);
          }
        }, filterItems);
        return filterItems.result;
      };
    })
    
    HTML:

    按语言搜索:

  • {{o.name}}
  • 按单位搜索:

  • {{o.name}}
  • 结果:

    {{arr.language.name}}”和“{arr.business_unit.name}”

    有关更多详细信息,请参见

    您可以使用自定义筛选器来实现您的目标:

    自定义文件管理器:

    filter('myFilter', function() {
      return function(items, search) {
        var filterItems = {
          search: search,
          result: []
        };
    
        if (!search.needFilter) {
          return items;
        }
    
        angular.forEach(items, function(value, key) {
          if (this.search.language[value.language.name] === true || this.search.business_unit[value.business_unit.name] === true) {
            this.result.push(value);
          }
        }, filterItems);
        return filterItems.result;
      };
    })
    
    HTML:

    按语言搜索:

  • {{o.name}}
  • 按单位搜索:

  • {{o.name}}
  • 结果:

    {{arr.language.name}}”和“{arr.business_unit.name}”

    有关更多详细信息,请参见

    我认为如果不编写自定义过滤器AFAIK,您无法完成此操作。如果您只能选择一种语言,则可以使用内置过滤器。我很乐意为您提供帮助,但请澄清您的问题。是将复选框绑定到包含选定值的数组/对象(似乎不起作用)的问题,还是仅仅是独立于值的选择方式的筛选步骤。如果两者都有,您可以创建两个独立的较短问题。如果只有一个,请省去不相关的部分,缩短你的问题。你的小提琴使用角度1.0.3。这是一项要求吗?这可能有助于您在@lex82复选框中进行选择。谢谢您的时间。不符合角度1.0.3的规定。。这个问题实际上是根据两个列表中的复选框过滤主要结果。。任何一个和两个列表都应该有效。我不认为不编写自定义过滤器就可以做到这一点。如果您只能选择一种语言,则可以使用内置过滤器。我很乐意为您提供帮助,但请澄清您的问题。是将复选框绑定到包含选定值的数组/对象(似乎不起作用)的问题,还是仅仅是独立于值的选择方式的筛选步骤。如果两者都有,您可以创建两个独立的较短问题。如果只有一个,请省去不相关的部分,缩短你的问题。你的小提琴使用角度1.0.3。这是一项要求吗?这可能有助于您在@lex82复选框中进行选择。谢谢您的时间。不符合角度1.0.3的规定。。这个问题实际上是根据两个列表中的复选框过滤主要结果。。任何一个和两个列表都应该有效。