У меня есть массив, как, например:AngularJS фильтровать массив в массиве
$scope.posts = [
{"from":"Aaron", "groups":[1,2,3]},
{"from":"Byron", "groups":[1,2,4]},
{"from":"Caren", "groups":[1,3,5]}
]
Я пытаюсь фильтровать по группе в контроллере. Так, например, если мне нужны только сообщения, в которых группы содержат 2
, он будет показывать только сообщения Аарона и Байрона.
Я попытался сделать это с помощью кнопки ng-click
функции:
<button ng-click="filterByGroup(2)">Filter</button>
И в контроллере,
.controller ('Ctrl',$scope, $filter) {
$scope.posts = [
{"from":"Aaron", "groups":[1,2,3]},
{"from":"Byron", "groups":[1,2,4]},
{"from":"Caren", "groups":[1,3,5]}
];
$scope.filterByGroup = function (group_no){
$filter('filter')($scope.posts,?,group_no)
}
}
Я знаю, что могу сделать функцию в, но я не знаю, как Сделай так. Думал сделать indexOf
, но я не могу сделать groups.IndexOf(group_no)
.
Любая помощь приветствуется!
решение фактически создать функцию фильтра, который делает использовать 'IndexOf()' на группы собственности. Обратите внимание, что '$ filter' ничего не делает без назначения возвращаемого значения – charlietfl
Ah .... да. теперь я понимаю. Благодаря! –