2014-09-19 1 views
0

ng-repeat에서 id를 사용하여 사이트의 모든 기사를 포함하는 기사 개체가 있습니다. 또한 반복되는 ID로 연결된 기사의 제품 객체 내부에 배열이 있습니다.별도의 배열에서 사용한 ID를 필터링하는 Angular JS

제품에 아직 부착되지 않은 기사 만 표시하려고합니다. 배열에 대해 반복 수행하고 일치하는 항목을 찾은 다음 반환 된 객체에서 제외하는 방법은 확실하지 않습니다.

https://gist.github.com/irthos/0565c66be0ab992adc0a

내가 = 반복 겨 수있는 방법이 있나요 "기사에서 기사를 | (.. 때 어떤 product.articles $ 아이디 === 기사 $ 아이디 제외)"가?

+1

하는 데 도움이 참조하십시오. –

답변

1

var app = angular.module('app', []); 
 
app.controller('MainCtrl', function($scope) { 
 
    $scope.name = 'World'; 
 
    $scope.search = 1; 
 

 
    $scope.familes = [{ 
 
    id:1, 
 
    name: "Kruders", 
 
    kids: [ 
 
     { name: "zoe" } 
 
     ] 
 
}, 
 

 
{ 
 
    id:2, 
 
    name: "Halifax", 
 
    kids: [ 
 
     { name: "mike" } , 
 
     { name: "jim" } 
 
     ] 
 
}, 
 

 
{ 
 
    id:3, 
 
    name: "Judes", 
 
    kids: [ 
 
     
 
     ] 
 
}] 
 
});
<html ng-app="app"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-controller="MainCtrl"> 
 
    <input type="number" ng-model="search" /> 
 

 

 

 
    <ul> 
 
    <li ng-repeat="family in familes | filter :{id:'!'+search}">id: {{family.id}} - Name:{{family.name}}</li> 
 
    </ul> 
 

 
</body> 
 
    </html>
는 것을 데모 당신이 원하는 것을 그 범위에 함수를 만들고 filter``에 인수로 전달 http://plnkr.co/edit/MNqBhOd1Y5GVezfa8zj0?p=preview

ng-repeat="article in articles | filter :{id:'!'+product.articles.$id}) 
+0

많이 감사드립니다. 매우 우아합니다. 한 가지만, 나는 달성 할 방법을 아직 보지 못했다 : $ scope.search = [1,2]를 갖는 방법은 출력이 3이 될 수 있도록한다. – irth

+1

@irth이 경우에는 사용자 정의 필터를 만들어야한다. 여기 http://plnkr.co/edit/oFeKpFFEH9HoxxcySGi0?p=preview – sylwester