В Угловое 1.1.3 или более поздней версии вы можете использовать следующие:
<div ng-repeat="user in users | filter:{'id': 1}:true">
{'id': 1}
говорит только сравнить с полем id
. Это заставляет вас:
simon, 1
archie, 14
:true
говорит: "точное совпадение", в результате:
simon, 1
Вот что рабочая: http://jsfiddle.net/AM95H/
Для фильтрации по списку значений, если у вас есть в переменной области, я бы добавил специальный фильтр в ваш файл JS:
$scope.filterValues = [1,8];
$scope.myFilter = function(value) {
return ($scope.filterValues.indexOf(value.id) !== -1);
};
Используется так:
<div ng-repeat="user in users | filter: myFilter">
Для фильтрации по списку параметров мы создадим свой собственный фильтр. В этом случае мы получим вызов один раз со всеми входными значениями для проверки, а не один раз за значение.
Таким образом, первым параметром, который мы получим, является массив входных значений (пользователей в вашем случае), а вторым параметром будет параметр, который мы передаем ([1,8]). Затем мы создадим выходной массив и добавим (push) любые элементы во входном потоке, соответствующие одному из filterValues
. И верните выходной массив.
myApp.filter('myFilter', function() {
return function(inputs,filterValues) {
var output = [];
angular.forEach(inputs, function (input) {
if (filterValues.indexOf(input.id) !== -1)
output.push(input);
});
return output;
};
});
И использовать его как это:
<div ng-repeat="user in users | myFilter:[1,8]">
Вот пример этого: http://jsfiddle.net/AM95H/2/
возможно дубликат [точного фильтра в угловых] (http://stackoverflow.com/questions/18242520/exact-filter-in-angu lar) – Stewie