【问题标题】:AngularJS - Filtering out values on drop down listAngularJS - 过滤掉下拉列表中的值
【发布时间】:2019-07-18 11:45:10
【问题描述】:

我一直在处理我的下拉列表,虽然我知道 HTML 工作正常,但我似乎无法正确地在列表中填充值。我什至似乎无法进入提供的代码中的 for 循环,我错过了什么吗?

AngularJS:

$scope.vendorUserList = [];
SpringDataRestService.get(
    {
        "collection": "user"
    },
    function (response) {
        var users = response;
        for (var i = 0, len = users.length; i < len; i++) {
            if (users[i].type === "VENDOR") {
                if (users[i].status !== "PENDING_DEACTIVATION") {
                    var newUser = {id: users[i].id, name: users[i].name};
                    $scope.vendorUserList.push(newUser);
                }
            }
        }
    },
    }
);

JSON:

http://localhost:8080/api/users

{
    "status": "ACTIVE",
    "userName": "CLIENT 2"
}

【问题讨论】:

  • json 中缺少属性? “类型”在哪里?
  • 甚至无法进入循环?所以 for 只是跳过?请原谅这个问题,但SpringDataRestService 是否返回$http response$http response.data
  • this和你需要的一样吗?

标签: json angularjs


【解决方案1】:

我使用 AngularJS $http.get 首先返回整个用户列表,然后我过滤掉了居住在 Wisokyburgh 市的也有邮政编码的用户,使用您的代码(略修改)。

var root = 'https://jsonplaceholder.typicode.com';

// Create an Angular module named "usersApp"
var app = angular.module("usersApp", []);

// Create controller for the "usersApp" module
app.controller("usersCtrl", ["$scope", "$http", function($scope, $http) {
  $scope.vendorUserList = [];
  var url = root + "/users"
  $http.get(url)
    .then(function(data) {
      var users = data.data;
      console.log(users);
      for (var i = 0; i < users.length; i++) {
        if (users[i].address.city === "Wisokyburgh") {
          if (users[i].address.zipcode !== "") {
            var newUser = {
              id: users[i].id,
              name: users[i].name
            };
            $scope.vendorUserList.push(newUser);
          }
        }
      }
      console.log($scope.vendorUserList);
    });
}]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js"></script>
<div class="container" data-ng-app="usersApp">
  <div data-ng-controller="usersCtrl">
    <select>
      <option value="0">Choose from the list</option>
      <option ng-repeat="user in vendorUserList" value="user.id">{{user.name}}</option>
    </select>
  </div>
</div>

情况与您的情况相似,但 url 是公开的(必须公开,以便 sn-p 工作)。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 2014-07-26
    • 2016-05-27
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多