过滤ng-repeat列表中的两个值

时间:2015-07-30 15:37:04

标签: angularjs

我正在做一个有两个字段的过滤列表。第一个是典型的过滤器,它是否包含写入输入的部分或字母。另一种情况是,如果输入中写入的内容与代码显示结果完全相同。

在第二种情况下,项目是隐藏的,因此只有这样才能看到它们输入的只有少数用户可以访问的唯一代码。 (客户要求)

这个效果很好,但是当你写一些过滤器时,不会收取你应该删除的所有项目,只是一些。我会让我的代码和图片。

我的清单:

<input type="search" placeholder="Buscar" ng-model="search.name">
<a class="item item-avatar" ng-repeat="lugar in organizations_all | lugares:search track by lugar.id" ng-click="mostrarAreas(lugar.id)">

我的过滤器:

.filter('lugares', function() {
return function(items,filtro) {
  var lugares = [];
  if(typeof filtro == "undefined" || filtro == ""){
    angular.forEach(items, function(item) {
      if(!item.hide){
        lugares.push(item);
      }

    });
  }else{
    angular.forEach(items, function(item) {
      if(item.code == filtro.name && item.hide == true) {
        lugares.push(item);
      }else{
        if(item.name.toLowerCase().indexOf(filtro.name.toLowerCase()) >= 0 && item.code == "" && item.hide == false){
          lugares.push(item);
        }
      }
    });
    if(filtro.name == "" || typeof filtro.name == "undefined"){
      angular.forEach(items, function(item) {
        if(!item.hide){
          lugares.push(item);
        }
      });
    }
  }
  return lugares;
 }
})

1 个答案:

答案 0 :(得分:0)

转发:

.filter('lugar', function(){

返回功能(items,filtro){

console.log("ENTRO");
var lugares = [];
if(filtro == "" || typeof filtro == "undefined"){
  lugares = [];
  angular.forEach(items, function(item) {
      if(!item.hide){
        lugares.push(item);
      }
    });
  return lugares;
}else{
  angular.forEach(items, function(item) {
    if(item.code == filtro.name && item.hide == true) {
      lugares.push(item);
    }else{
      if(item.name.toLowerCase().indexOf(filtro.name.toLowerCase()) >= 0 && item.code == "" && item.hide == false){
        lugares.push(item);
      }
    }
  });
  return lugares;
}
}
})