2016-04-20 2 views
1

У меня есть фабрика в угловом формате, которая будет извлекать все данные из базы данных в виде данных JSON, как показано ниже.Angularjs Filter Json Data

[{"part_no":"aaa","descr":"aaa123"},{"part_no":"bbb","descr":"bbb123"},{"part_no":"ccc","descr":"ccc123"},{"part_no":"ddd","descr":"ddd123"}] 

Как я могу просто фильтровать, позволяет сказать, что запись с part_no : aaa и только descr:aaa123?

может быть что-то вроде $scope.data = data | filter:part_no:aaa;

+1

Желаешь предварительной фильтрации результатов на заводе-изготовителе, или фильтра это в 'ng-repeat'? Я думаю, вы найдете ответ здесь: http://stackoverflow.com/questions/14302267/how-to-use-a-filter-in-a-controller – akn

+1

спасибо за ссылку, я закончил использование функции filterFilter builtin –

ответ

1

Вот пример того, как фильтровать как в JavaScript и в представлении:

var app = angular.module('myapp', []); 
 
app.controller('myctrl', function($scope) { 
 
    $scope.data = [{"part_no":"aaa","descr":"aaa123"},{"part_no":"bbb","descr":"bbb123"},{"part_no":"ccc","descr":"ccc123"},{"part_no":"ddd","descr":"ddd123"}]; 
 

 
    $scope.filteredData = $scope.data.filter(function(d) { 
 
    return d.part_no === 'aaa' && d.descr === 'aaa123' 
 
    }); 
 

 
});
.section { 
 
    margin-bottom: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myapp" ng-controller="myctrl"> 
 
    <div class="section"> 
 
    <h3>unfiltered data:</h3> 
 
    <div ng-repeat="item in data">Part: {{item.part_no}}, Description: {{item.descr}}</div> 
 
    </div> 
 
    <div class="section"> 
 
    <h3>pre-filtered data in JavaScript:</h3> 
 
    <div ng-repeat="item in filteredData">Part: {{item.part_no}}, Description: {{item.descr}}</div> 
 
    </div> 
 
    <div class="section"> 
 
    <h3>filtered data in view:</h3> 
 
    <input ng-model="partFilter" placeholder="part filter" /> 
 
    <input ng-model="descrFilter" placeholder="description filter" /> 
 
    <div ng-repeat="item in data | filter:{part_no: partFilter, descr: descrFilter}">Part: {{item.part_no}}, Description: {{item.descr}}</div> 
 
    </div> 
 
</div>