2016-07-06 90 views
4

我有以下的JSON数据结构AngularJS NG-重复过滤器子节点

{ "firstName" : "John", 
    "role" : "Manager", 
    "status" : { 
       "Id" : 30, 
       "Status" : "Appointment booked", 
       "statusDate" : 1467826508775 
      }, 
    "surname" : "Smith", 
    "title" : "Mr", 
} 

,我试图用一个NG重复过滤,以第二级节点status.Status。我已经尝试过以下但过滤器不起作用。

ng-repeat="data in data | filter: {status.Status: 'Appointment booked'}" 

上述可能的ng-repeat或我需要看看替代解决方案吗?

+4

尝试'过滤器:{状态:{状态:'预约预约'}}“' –

+0

非常好,谢谢。在这一天的大部分时间里,我一直在摸索着。如果你把它作为答案,我会把它标记为正确的:) – Janbango

+0

这是一个答案 – marcusshep

回答

2

你总是可以使用自定义过滤器时,一切都失败了:

ng-repeat="d in data | myFormat" 

JS:

app.controller('myCtrl', function ($scope) { 
    $scope.data = { 
     "firstName": "John", 
     "role": "Manager", 
     "status": { 
      "Id": 30, 
      "Status": "Appointment booked", 
      "statusDate": 1467826508775 
     }, 
     "surname": "Smith", 
     "title": "Mr", 
    } 
}); 

app.filter('myFormat', function() { 
    return function (x) { 
     if (x.status.Status == 'Appointment booked') { 
      return x; 
     } 
    }; 
}); 

正如评论mentionned

ng-repeat="d in data | filter : {status: { Status : 'Apointment booked'}}" 

作品藏汉

+0

我已经在@Italo Ayres的评论中使用了解决方案,但我会将它标记为正确的答案,因为它给了我深入了解自定义过滤器的灵活性。 – Janbango