1

중계기 요소에서 숨길 수있는 작은 필터를 쓰려고합니다.angularjs - 중계 장치에서 숨길 필터

의 내 범위이라고 가정 해 봅시다 :

$scope.test = [ 
    {id: 1,name: "Test number 1"}, 
    {id: 2,name: "Test number 2"}, 
    {id: 3,name: "Test number 3"}, 
    {id: 4,name: "Test number 4"}, 
    {id: 5,name: "Test number 5"}, 
    {id: 6,name: "Test number 6"}, 
    {id: 7,name: "Test number 7"}, 
    {id: 8,name: "Test number 8"}, 
    {id: 9,name: "Test number 9"}, 
    {id: 10,name: "Test number 10"} 
] 

내 중계기에서이 같은 일을하고있는 중이 야 : 내 필터를 쓰기 시작하지만이 붙어있어

<div ng-repeat="t in test| hide:[1,6]"></div> 

. return, 네 경우 newArray

에 누르지 않고

체크 t.id 경우가 숨겨져되어야하고 :

filter('hideIDs', function() { 
    newArray= []; 

    function(zone, IDS) { 
    var containsObject, newArray; 
    containsObject = function(obj, list) { 
     var i; 
     i = void 0; 
     i = 0; 
     while (i < list.length) { 
     if (list[i] === obj) { 
      return true; 
     } 
     i++; 
     } 
     return false; 
    }; 

    angular.forEach(IDS, function(hide) { 
     return angular.forEach(test, function(t) { 
     if (t.id === hide) { 
      return 
     } else { 
      if (containsObject(t, newArray)) { 
      return 
      } else { 
      newArray.push(t); 
      } 
     } 
     }); 
    }); 
    return newArray; 
    }; 
}); 

내가 필터와 함께 할 노력하고 있어요 것은 : 이것은 내가 지금까지 무엇을 가지고

내가있어 문제는 : 숨길

ID가 첫 번째 루프에서 1, 다음 6 밀리

012 두 번째 루프 hovewer에 3,516,

는 숨길 수있는 ID는 6입니다 후 1

을 밀어 얻고 어쨌든 둘 다 가지고 결국.

제안 사항?

효과적인 각도 방법으로 무엇을 얻을 수 있습니까?

고마워요

답변

2

어때요? https://plnkr.co/edit/hPiOnq7jp4kIP6h8Ox1d?p=preview

<div ng-init="data = [{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}]"> 
    <div ng-repeat="test in data | hideByIds:[2, 4]"> 
    {{ test.id }} 
    </div> 
</div> 

당신은 다시해야 당신이 할 수있는 무엇,이 경우 filter 필터 : 대안이 범위에 조건 자 함수를 지정하고, 단순히 필터에 전달하는 것입니다

var app = angular.module('app', []); 

app.filter('hideByIds', function($filter) { 
    return function(input, ids) { 
    return $filter('filter')(input, function(it) { 
     return ids.indexOf(it.id) == -1; 
    }); 
    } 
}); 

템플릿.

+0

그래, 솔기가 작동합니다. 제안을 주셔서 감사합니다 – Nick

+0

이 stile 결과를 쓰는 이유는 '내 각 애플 리케이션이 너무 느립니다?' –

+0

@PetrAveryanov가 귀하의 의견을 좀 더 자세히 설명해 주시겠습니까? 나는 정말로 느리게 점점 내 애플 리케이션에 대해 우려하고있다 – Nick