2013-10-08 21 views
1

我有一個區域列表,每個區域都有一個下拉列表,應該只顯示該特定區域中的城市。我用這個嵌套ng-repeatAngularJS - 創建隨每個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; 
     } 

它是可行的?

+0

請把代碼上的jsfiddle/plunker –

回答

1

是的,這是可行的。您可以將參數傳遞給你的過濾器:

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

和過濾器:

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

在哪裏操縱當前區域相匹配的價值?我需要爲每次迭代更改值 – Matanya

+1

您不能將區域傳遞給過濾器並根據該區域顯示/隱藏城市嗎? –

相關問題