Wewnątrz kontrolera chciałbym filtrować tablicę obiektów. Każdy z tych obiektów to mapa, która może zawierać ciągi znaków oraz listy. Próbowałem używać formatu $filter('filter')(array, function)
, ale nie wiem, jak uzyskać dostęp do poszczególnych elementów tablicy wewnątrz mojej funkcji. Oto fragment, który pokazuje, czego chcę.Funkcja filtra niestandardowego AngularJS
$filter('filter')(array, function() {
return criteriaMatch(item, criteria);
});
A potem w criteriaMatch()
będę sprawdzić, czy każdy z poszczególnych nieruchomości mecze
var criteriaMatch = function(item, criteria) {
// go thro each individual property in the item and criteria
// and check if they are equal
}
muszę zrobić wszystko to w kontrolerze i sporządzić listę list i ustawić je w zakres. Muszę więc uzyskać dostęp do $filter('filter')
tylko w ten sposób. Wszystkie przykłady znalezione w sieci do tej pory mają wyszukiwane kryteria statyczne wewnątrz funkcji, nie przekazują obiektu kryteriów i nie testują każdego elementu w tablicy.
Dlaczego potrzebujesz filtra? Zwykle filtry są używane z szablonów. Czy możesz nie tylko mieć zwykłą funkcję w swoim kontrolerze, jeśli używasz jej tylko tam? – Ketan
zamiast ręcznie przechodzić przez każdy element tablicy, myślałem, że możemy użyć funkcji filtru ("filter") kątowej (która zajmie się iterowaniem thro każdego elementu, jeśli tylko określimy funkcję predykatu) – user2368436