[
      ...
      {
         "surname":"Williams"
         "name":['Holly','James','Robert','Kim']
      },
      {
         "surname":"Jones"
         "name":['Holly','Joe','Jon','Harry']
      }
      ...
   ]


如果我有2个下拉菜单。第二个依赖于第一个。

第一个下拉列表中填有姓氏。



<select ng-model="surnameSelect" ng-options="person.surname as person.surname for person in persons">
  <option value="" ng-if="!surnameSelect"></option>
</select>





现在基于选定的“姓氏”,我想用姓氏与所选姓氏匹配的对象中数组中的值填充第二个下拉列表。

我的问题是这个。如何找到该数组,以及如何使用angularJS中的ng-options遍历数组?

最好的祝福

最佳答案

Here是可能的解决方案:在ng-change="populate()"上执行surname select

<select  ng-change="populate()" ng-model="surnameSelect" ng-options="person.surname as person.surname for person in persons"></select>

<select ng-model="nameSelect" ng-options="name as name for name in currentNames"></select>


参见plunker中的完整实现。

$scope.populate = function(){
  var currentPerson = $scope.persons.filter(function( person ) {
    return person.surname == $scope.surnameSelect;
  });
  $scope.currentNames = currentPerson[0].name;
  $scope.nameSelect = $scope.currentNames[0];
};

09-27 01:03
查看更多