根据复选框输入过滤深层对象

时间:2016-04-25 05:23:40

标签: javascript angularjs filter angularjs-ng-repeat

我不确定我哪里出错了,但我的过滤器隐藏了行程对象中的所有行程。

我的对象看起来像是这样(它们很大,所以我只会告诉你结构):

[
    { // itinerary
         filters:{
              stops:2
         }
         ... children
    },
    {
         ... next itinerary
    }
]

我的ngRepeat看起来像这样

<div class="col-sm-12 item" data-ng-repeat="itinerary in results | filter: {itinerary: {filters: {stops: filterStops}}} | orderBy: orderBy" data-ng-class="{ active: resultDetails }">

我正在设置我的filterStops范围项,如此

md-checkbox aria-label="Non-Stop" data-ng-model="filterStops" ng-true-value="0">Direct</md-checkbox>

在任何情况下都不会显示任何内容,无论是直接将停止次数硬编码到过滤器中,还是通过复选框选择它。没有控制台错误可言,我猜我的逻辑到达过滤器对象中的子属性是有缺陷的吗?

我在这里不知所措,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在控制器中创建方法

$scope.filter=function(obj){
  return obj.filters.stops == $scope.resultDetails;
}

将此添加到视图

data-ng-repeat="itinerary in results | filter: filter | orderBy: orderBy"