/ / Angular JS Filter Group Select Filter - javascript, angularjs, angularjs-policy, angularjs-scope, angularjs-ng-repeat

Angular JS Filter Group Select Filter - javascript, angularjs, angularjs-directive, angularjs-scope, angularjs-ng-repeat

Mam obiekt użytkowników podobny do poniższego:

$scope.users = [
{
name : "John Doe",
attached_groups = [
{1:object},
{2:object}
]
},
{
name : "Bob Doe",
attached_groups = [
{3:object},
{4:object}
]
}
];

W moim HTML mam następującą grupę do wyboru.

<select id="group_filter">
<option value="1">Group 1</option>
<option value="2">Group 2</option>
<option value="3">Group 3</option>
<option value="4">Group 4</option>
</select>

Chciałbym dodać filtr do mojego powtórzenia ng do filtrowania w grupach. Mam następujące powtórzenie ng.

<tr ng-repeat="user in users| filter:query>

Każda pomoc będzie doceniona.

Odpowiedzi:

2 dla odpowiedzi № 1

Cóż, nie zmieniłem struktury $ scope.users, ale potrzebujesz przeglądu, ponieważ nie uważam, że to najlepszy sposób.

Ważne tutaj:

http://codepen.io/luarmr/pen/YXVqqp

ng-repeat="user in users | filter:search"

i musisz zdefiniować filtr wyszukiwania:

$scope.search = function(user) {

if ($scope.filter === undefined ) {
return true;
}

var match = false;

angular.forEach(user.attached_groups, function(group) {
if (group.hasOwnProperty($scope.filter)) {
match = true;
}
});

return match;
};

filtr może być łatwiejszy, jeśli zmienisz attach_groups. Możesz zobaczyć przykład tutaj: https://docs.angularjs.org/api/ng/filter/filter


1 dla odpowiedzi nr 2

utwórz wpis typu tekstowego i ng-model="query".

<input type="text" ng-model="query">

to zostanie następnie przefiltrowane:

<tr ng-repeat="x in users | filter:query">...</tr>