Angularjs过滤Json数据

时间:2016-04-20 06:44:00

标签: angularjs

我有一个角度的工厂,它将从数据库中检索所有数据,如下面的JSON数据。

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

我如何才能过滤,让我们说part_no : aaadescr:aaa123的记录呢?

可能类似于$scope.data = data | filter:part_no:aaa;

1 个答案:

答案 0 :(得分: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>