2016-07-15 6 views
0

私は、配列の内容で親IDでネストされたng-repeatをフィルタリングする方法は?

lists = [{"id":"1234"},{"id":"5423"},{"id":"65342"}] 

と配列があります。

contents = [{"id":"1","listId":"1234"},{"id":"2","listId":"5423"}] 

はどのようで、「リスト」のNGリピート内の「コンテンツ」とフィルタ「内容」のためにNGリピートをフィルタリングすることができますがcontent.listID equal list.id?

+0

plunkerを行い、問題を示し、 –

答えて

1

子の配列に親のIDを付ける必要があります。子の配列は、その親のIDに対してフィルタリングされます。同様の例についてはplnk

よろしくお願いいたします。

2

おそらく、このマッピングはビューではなくコントローラで行うべきですが、以下の例ではその方法を示します。

(function() { 
 
    'use strict'; 
 

 
    angular 
 
    .module('exampleApp', []) 
 
    .controller('ExampleController', ExampleController); 
 

 
    function ExampleController() { 
 
    var vm = this; 
 
    vm.lists = [{ 
 
     "id": "1234" 
 
    }, { 
 
     "id": "5423" 
 
    }, { 
 
     "id": "65342" 
 
    }] 
 
    vm.contents = [{ 
 
     "id": "1", 
 
     "listId": "1234" 
 
    }, { 
 
     "id": "2", 
 
     "listId": "5423" 
 
    }] 
 
    } 
 
    ExampleController.$inject = []; 
 
})();
<!DOCTYPE html> 
 
<html ng-app='exampleApp'> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script> 
 
</head> 
 

 
<body ng-controller="ExampleController as vm"> 
 
    <div ng-repeat="item in vm.lists"> 
 
    <p ng-repeat="content in vm.contents | filter:{ listId: item.id }">Content ID: {{content.id}} Lists ID: {{item.id}}</p> 
 
    </div> 
 
</body> 
 

 
</html>

関連する問題