Я новичок в AngularJS, и я создаю небольшое приложение для проката автомобилей с концептуальным дизайном, которое тянет в какой-то JSON и отображает различные биты этих данных через ng -repeat, с несколькими фильтрами:AngularJS: Пользовательские фильтры и ng-repeat
<article data-ng-repeat="result in results | filter:search" class="result">
<header><h3>{{result.carType.name}}, {{result.carDetails.doors}} door, £{{result.price.value}} - {{ result.company.name }}</h3></header>
<ul class="result-features">
<li>{{result.carDetails.hireDuration}} day hire</li>
<li data-ng-show="result.carDetails.airCon">Air conditioning</li>
<li data-ng-show="result.carDetails.unlimitedMileage">Unlimited Mileage</li>
<li data-ng-show="result.carDetails.theftProtection">Theft Protection</li>
</ul>
</article>
<h2>Filters</h2>
<h4>Doors:</h4>
<select data-ng-model="search.carDetails">
<option value="">All</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="9">9</option>
</select>
<h4>Provider:</h4>
Atlas Choice <input type="checkbox" data-ng-model="search.company" ng-true-value="Atlas Choice" ng-false-value="" value="Atlas Choice" /><br>
Holiday Autos <input type="checkbox" data-ng-model="search.company" ng-true-value="Holiday Autos" ng-false-value="" value="Holiday Autos" /><br>
Avis <input type="checkbox" data-ng-model="search.company" ng-true-value="Avis" ng-false-value="" value="Avis" /><br>
Теперь я хочу, чтобы создать пользовательский фильтр в мой контроллер, который может итерацию по элементам в моем нг-повтора и возврата только те элементы, которые удовлетворяют определенным критериям - для Например, я могу создать массив значений, на основе которых отмечены флажки «поставщик», а затем оценивать каждый элемент ng-repeat против этого. Я просто не могу понять, как бы это сделать, хотя с точки зрения синтаксиса - может ли кто-нибудь помочь?
Вот мой Plunker: http://plnkr.co/edit/lNJNYagMC2rszbSOF95k?p=preview
Этот пример должен быть в документах. –
Очень интересно! Фильтр можно упростить, чтобы 'возвращать car.carDetails.doors> 2;' хотя. – sp00m
Конечно, может. Однако я решил более подробный вариант, чтобы сделать его более понятным как пример обучения. – mirrormx