AngularJS - 创建动态过滤器,随每次ng-repeat迭代而变化

时间:2013-10-08 10:53:40

标签: angularjs angularjs-ng-repeat

我有一个地区列表,每个地区都有一个下拉列表,该列表应该只显示该特定地区的城市。我使用了嵌套ng-repeat

<li ng-click="filter_region($event)" ng-repeat="region in regions">
       <span>{{region.region}}</span>
    <ul class="cityFilter" >
            <li ng-repeat="city in cities | filter:cityList">
                <input type="checkbox" value="{{city.id}}" ng-model="city.checked" ng-checked="city.checked">
                <span>{{city.city}}</span>
            </li>
        </ul>
  </li>

我需要cityList作为动态过滤器。应根据当前区域过滤每个城市。 即区域值需要随着外循环的每次迭代而改变

过滤器的伪代码:

$scope.cityList = function (item) {
            if (item.region_id == myDynamicRegion) 
                return true;
            return false;
        }

可行吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可行的。您可以将参数传递给过滤器:

<div ng-repeat="item in items |filter:x"></div>

过滤器:

 yourApp.filter('filter', function () {
        return function (item, x) {
            // Do the magic.
        };
 });