2015-07-10 2 views
0

У меня есть массив объектов в AngularJS как:Как сделать фильтрацию, выбрав в Angular JS?

var arr = [{type : 1, name : 'Bbc'}]; 

Также у меня есть список выбора:

<select ng-model="type"> 
<option value="1">Select</option> 
</select> 

Как можно отфильтровать объект в нг-повторе по выбранной опции из отборных?

+0

Проверьте документацию углов относительно фильтров: https://docs.angularjs.org/api/ng/filter/filter ... вы можете использовать функции в качестве фильтров, чтобы вы могли определить функцию в своей области и проверить тип модели там и вернуться на основе сравнения. – Mindastic

ответ

0

Если я правильно понимаю ваш вопрос, я бы что-то вроде этого:

HTML

<div ng-controller="MyCtrl"> 
    <p>Select type to filter:</p> 
    <select ng-model="filterTypes" ng-options="item.type for item in types"></select> 
    <div ng-repeat="type in types | filter:filterTypes"> 
     <p>{{type.name}}</p> 
    </div> 
</div> 

Javascript

var myApp = angular.module('myApp',[]); 

function MyCtrl($scope) { 
    $scope.types = 
    [{type : 1, name : 'Bbc'}, 
    {type : 2, name: 'Bcc'}, 
    {type : 3, name: 'Bac'}   
    ]; 
} 

Вот скрипку, если вы хотите увидеть Результаты: http://jsfiddle.net/fsalin/3oLv66ff/8/

+0

Но если фильтр еще? Могу ли я использовать два фильтра? Но введите поле и выберите список? – Kaffarov

+0

Да, вы можете использовать несколько фильтров. Я создал скрипку, показывающую, как это сделать: http://jsfiddle.net/fsalin/3oLv66ff/21/ –

+0

Чтобы использовать несколько фильтров, вам просто нужно добавить дополнительные атрибуты фильтра, разделенные «|» в директиву ng-repeat и сопоставить их с ng-моделями. См. Скрипку для уточнения. –

Смежные вопросы