Angularjs ng repeat内的角度ng repeat过滤器

Angularjs ng repeat内的角度ng repeat过滤器,angularjs,filter,angularjs-ng-repeat,Angularjs,Filter,Angularjs Ng Repeat,我一直在尝试制作一个地理区域列表,每个区域都有一系列的税,但并非所有的税都适用于所有的地理区域 所以我对地理区域做了一次ng重复,在每个地理区域内都有一次ng重复,包括所有的税收。问题是我不知道如何发送正在过滤的地理区域的id。这是当前的代码: <md-option ng-repeat="tax in taxClasses | filter: filterTax" value="{{ '{{ tax.id }}' }}">{{ '{{ tax.name }}' }}</md-o

我一直在尝试制作一个地理区域列表,每个区域都有一系列的税,但并非所有的税都适用于所有的地理区域

所以我对地理区域做了一次ng重复,在每个地理区域内都有一次ng重复,包括所有的税收。问题是我不知道如何发送正在过滤的地理区域的id。这是当前的代码:

<md-option ng-repeat="tax in taxClasses | filter: filterTax" value="{{ '{{ tax.id }}' }}">{{ '{{ tax.name }}' }}</md-option>

需要n是地理区域的索引,或者类似的东西。提前谢谢

您的想法并不遥远,但使用filter:甚至没有必要,因为pipe |已经是一个filter命令:

或者使用您范围内的筛选功能:

// template
ng-repeat="tax in filterTaxes(taxClasses, <geozoneIndex>)"

// script
$scope.filterTaxes = function(taxClasses, geozoneIndex) {
  // do the whole filtering, but return an array of matches
  return taxClasses.filter(function(taxClass) {
    return /* in or out code */;
  });
};
这意味着您的geozoneIndex可能是一个固定值,也可能是从该范围内可用的变量中提取的


请注意,您的FielTax功能将被大量调用,因此如果您的页面速度变慢,您可能需要考虑优化过滤。

谢谢您的回答!但我得到一个错误:[$injector:unpr]未知提供程序:FilterTaxFilterProvider更新了我的答案。我最初提出的过滤器需要在您的模块中知道,但有一个可能更简单的替代方案,我也提供了。
ng-repeat="<var> in <array> | <filterFunction>:<...arguments>"
ng-repeat="tax in taxClasses | filterTax: <geozoneIndex>"
app.module(...).filter('filterTax', function(/* injected services */) {
  return function (/* arguments */ input, geozoneIndex) {
    // function body
  }
});
// template
ng-repeat="tax in filterTaxes(taxClasses, <geozoneIndex>)"

// script
$scope.filterTaxes = function(taxClasses, geozoneIndex) {
  // do the whole filtering, but return an array of matches
  return taxClasses.filter(function(taxClass) {
    return /* in or out code */;
  });
};