Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS嵌套ng重复筛选多个参数_Javascript_Angularjs_Angularjs Ng Repeat_Ng Repeat_Angularjs Filter - Fatal编程技术网

Javascript AngularJS嵌套ng重复筛选多个参数

Javascript AngularJS嵌套ng重复筛选多个参数,javascript,angularjs,angularjs-ng-repeat,ng-repeat,angularjs-filter,Javascript,Angularjs,Angularjs Ng Repeat,Ng Repeat,Angularjs Filter,长期潜伏者,第一次海报。真的很喜欢这里的社区:) 好的,问题就在这里。目标是通过向筛选器传递2个参数来筛选ng repeat 我有一个嵌套的ng repeat,在第二个repeat上,我需要根据条目的生命周期是否在当前月份来过滤条目 我以前用过ng if,但因为我对奇数行和偶数行使用了不同的CSS,所以产生了不想要的结果 相关HTML部分: <div class="col-md-12" ng-repeat="month in monthTable"> <div class="

长期潜伏者,第一次海报。真的很喜欢这里的社区:)

好的,问题就在这里。目标是通过向筛选器传递2个参数来筛选ng repeat

我有一个嵌套的ng repeat,在第二个repeat上,我需要根据条目的生命周期是否在当前月份来过滤条目

我以前用过ng if,但因为我对奇数行和偶数行使用了不同的CSS,所以产生了不想要的结果

相关HTML部分:

<div class="col-md-12" ng-repeat="month in monthTable">
 <div class="col-md-12">
  <h2>
   <span>{{ month.start | amDateFormat:"MMMM" | uppercase}}</span>
  </h2>
 </div>
 <div class="col-md-12">
  <div ng-class-even="'calendar_row_even'" ng-class-odd="'calendar_row_odd'"
ng-repeat="bed in syncData.beds | filter: filterListItems(month, bed) |
orderBy:'timeFrom'">
   // --> displays the unfiltered results for each month at the moment...
  </div>
 </div>
</div>
一个月过去了,但床还没有定义

如果我这样写:

"filter: filterListItems(month, bed)"
"filter: filterListItems:month:bed"
只有床被传下去了,但是月份没有定义


我不知道我做错了什么,如果有人能给我指出正确的方向,我将不胜感激。

您应该将您的方法声明为筛选器:

angular.module('yourApp')
    .filter('filterListItems', filterListItems);
并采用如下方法:

function filterListItems() {
    return function(items, month) {
        // 'items' represent the objects listed by your ng-repeat
        // Now, filter the items to return only items that respect your condition.
        return items.filter(function(item) {
            return (item.timeFrom < month.end && item.timeUntil >= month.start);
        });
    }
}
angular.module('yourApp')
    .filter('filterListItems', filterListItems);
function filterListItems() {
    return function(items, month) {
        // 'items' represent the objects listed by your ng-repeat
        // Now, filter the items to return only items that respect your condition.
        return items.filter(function(item) {
            return (item.timeFrom < month.end && item.timeUntil >= month.start);
        });
    }
}
ng-repeat="bed in syncData.beds | filterListItems:month