AngularJs过滤器不是嵌套对象中的数组

时间:2017-07-18 15:05:46

标签: javascript angularjs json filter angularjs-ng-repeat

我有一个嵌套的JSON数据。我通过使用此JSON数据中的ng-repeat将对象写入表。但我想通过一个属性过滤这个ng-repeat。我怎么能这样做。

示例:

<tr ng-repeat="i in inspections.analizFirst">
    <td>{{$index+1}}</td><td>{{i.analiz}}</td><td>{{i.poi_adi}}</td><td>{{i.mesafe}}</td>
</tr>

它没有过滤器。但我需要像ng-repeat="i in inspections.analizFirst | filter:{analiz:'ulasim analizi'}"

那样进行过滤

2 个答案:

答案 0 :(得分:0)

使用控制器:

您可以过滤控制器内的数据,然后参考html中的过滤对象。将所有业务逻辑放在控制器中时,它通常更具可读性

创建您自己的过滤器:

如果您打算在应用程序中多次使用此过滤器,可能最好创建一个新的过滤器:

appModule.filter('myFilter', function() {
  return function(orginalList, arg1, arg2) {
    var filteredObject = [];
    orginalList.forEach(function(e) {
      if(e.analiz === arg1)
           filteredObject.push(e) 
    })
    return filteredObject;
   };
 })

HTML

<tr ng-repeat="i in inspections.analizFirst | myFilter:'ulasim analizi'">
  <td>{{$index+1}}</td><td>{{i.analiz}}</td><td>{{i.poi_adi}}</td><td>
 {{i.mesafe}}</td>
</tr>

答案 1 :(得分:-1)

就像这样:

<tr ng-repeat="i in inspections.analizFirst | filter:'ulasim analizi'">
    <td>{{$index+1}}</td><td>{{i.analiz}}</td><td>{{i.poi_adi}}</td><td>{{i.mesafe}}</td>
</tr>