使用angularjs从下拉列表中删除重复项

时间:2017-07-10 14:20:06

标签: javascript angularjs

我正在处理数据库中的动态下拉列表,我希望从一行中删除重复数据,因此列表中没有多个值。我试图在下拉列表中显示的字段是区域

JS

.controller('send_msg_district_ctrl',function($scope,$http,$location){

        $http.post('http://localhost:8080/Admin/calls/app_users.php').success(function(data){
        $scope.district=data;
        console.log(JSON.stringify(data));
            })
        })

.filter("removeDups", function(){
  return function(data) {
    if(angular.isArray(data)) {
      var result = [];
      var key = {};
      for(var i=0; i<data.length; i++) {
        var val = data[i];
        if(angular.isUndefined(key[val])) {
          key[val] = val;
          result.push(val);
        }
      }
      if(result.length > 0) {
        return result;
      }
    }
    return data;
  }
})

HTML

<select ng-model="item.District" ng-options="option for option in district | removeDups">
    <option value="" disabled>
        Please select an option
    </option>
</select>

当我点击下拉列表时,我得到[object object]

1 个答案:

答案 0 :(得分:0)

如果区是对象数组,则必须以其他方式使用ng-options。 您会在下拉列表中看到[object object],因为您是这样设置的。

我很确定您的对象具有标题值或类似的值? 在这种情况下,您必须使用:

<select ng-model="item.District" ng-options="option as option.title for option in district | removeDups">
    [...]
</select>