多选基于另一个多选

时间:2017-03-27 11:54:49

标签: angularjs ui-select

我需要根据这些多选中的国家来过滤城市。 我使用ui-select进行多选,感谢@tanmay。

请看一下这个小提琴。

Fiddle

1 个答案:

答案 0 :(得分:1)

您可以在ng-change上添加一项功能,该功能将返回所选国家/地区的所有城市

 $scope.getCityList=function(){

      var sampletemp = []; //temp array to hold filtered values
      $scope.selected.country.forEach(function(country) {
      //bjectFromArrayFilter --> A filter function that will do the filtering
      var temp =    objectFromArrayFilter($scope.samples,'country',country);
      sampletemp = sampletemp.concat(temp);
      //Filter duplicate city names
      $scope.uniquecity = $filter('unique')(sampletemp, 'city');
      //Reset all the already selected values
      $scope.selected.city= [];

      $scope.city = $scope.uniquecity.map(function(item) {
      return item.city
        })
    }

过滤功能。

您还可以使用此功能执行自定义过滤。只需传递对象数组,过滤键和值即可匹配

var objectFromArrayFilter=function(arrayOptions, key, value) {
    var filterResult = arrayOptions.filter(function(val) {
            return val[key] === value;
    });
    return filterResult;
};

<强> FULL EXAMPLE

可以对其他$scope.samples键进行过滤的类似功能